在TypeScript中使用jQuery插件

使用typescript时,是否需要为我使用的每个外部js导入plugin.d.ts? 换句话说,我是否需要使用所有接口创建jQuery.d.ts?保存.ts文件不会自动触发Visual Studio中的编译。您将需要构建/重建来触发编译 Declare files(file.d.ts)允许TypeScript编译器从该文件中获得有关您正在使用的JavaScript库的更好类型信息。您可以在一个文件或多个文件中定义所有接口;这应该没有什么区别。您还可以通过以下方式从外部库“声明”正在使用的类型/

TypeScript节点示例赢得';不编译

似乎每个人都有样品,但我的样品不会 我在windows 7 64位中安装了nodejs 0.8.2。npm安装了-g typescript以获得typescript支持。然后我从TypeScript下载了源代码并尝试了这些示例 但我就是无法编译节点示例。它返回错误消息: c:\..\..\typescript\bin\tsc.js:21182 if(_fs.existsSync(path)) { ^ TypeError: Object #

Typescript var声明隐藏模块内的接口

下面的代码 interface Foo { } declare var Foo: { new() : Foo; } module Bar { export interface Baz { } export declare var Baz: { new() : Baz; } } function f(p:Foo) { } //function b(p:Bar.Baz) { //} 编译很好,但是如果我在最后两行添加注释,tsc.exe

TypeScript:指定导出类的静态部分的接口?

我尝试使用手册“”部分的技巧为类的静态端(即函数)指定接口: export interface StaticInterface { info: string; } class _X { static info = 'something'; ... } export var X: StaticInterface = _X; 但是当我试图在另一个文件中扩展module.X时,编译器说: error TS2305: Module '"..."' has no exported

Typescript 相位器。状态未初始化

我正在创建我的第一个Phaser游戏作为chromecast接收器应用程序,我的代码有一些问题 我的代码如下: class TNSeconds { game: Phaser.Game; constructor() { this.game = new Phaser.Game(window.innerWidth * window.devicePixelRatio -20, window.innerHeight * window.devicePixelRatio -20, Phaser.

Typescript 在Angular 2中,组件和指令之间有什么区别?

我一直在努力理解框架中这两个概念之间的区别 我非常熟悉AngularJS 1.x中的指令是什么,AngularJS 2中的组件和指令似乎都非常类似于这个概念…您可以将任何组件都视为具有视图的指令 后果 基于只有组件才有视图这一事实,有两个后果,例如: 只有组件可以定义指令,以便在组件本身及其作为根的整个子树中使用 只有组件可以定义要在组件及其作为根的整个子树中使用的管道 只有组件可以定义视图封装,因为它们可以有视图,而不是指令 当框架为给定组件创建ElementInjector时,它将被标记为

Typescript 使用karma jasmine和istanbul的打字脚本的代码覆盖率

我正在尝试使用伊斯坦布尔为karma框架中的typescript代码获取代码覆盖率 在karma.conf中包含了typescript文件,通过karma typescript预处理器,我们可以对typescript代码进行单元测试和代码覆盖,但代码覆盖率报告用于跨堆栈JavaScript代码 如何获取typescript代码的覆盖率报告? 这是我的karma.conf文件 module.exports=函数(配置){ config.set({ //基本路径,将用于解析文件和排除 基本路径:“

Typescript 财产';包括';不存在于类型';字符串[]和#x27;

获取错误 类型“string[]”上不存在属性“includes” 在node_modules/ng2 breadcrumb/app/components/breadcrumbService.ts中 我正在尝试在angular2应用程序中实现面包屑功能。在tsconfig.js中将编译器目标更改为“es2016”应该可以解决这个问题。在tsconfig.json中向数组中添加“ES2017”: { "compilerOptions": { ... "lib": ["es6",

Typescript中两个函数的并集类型

有一种情况,我有一个类型,它是两个函数的并集,它们的一个参数的类型是文本值。归结为一个简单的例子,本质上是这样的: type FetchMini = (id: number, representation: 'mini') => MiniUser; type FetchFull = (id: number, representation: 'full') => FullUser; function f(fetchUser: FetchMini | FetchFull) { fe

Typescript/Vuejs未为计算属性编译

我开始学习typescript和Vuejs 有人能解释一下为什么我不能从computed allChecked()访问数据中的account属性吗 我有这个错误 ERROR in index.ts (25,25): error TS2339: Property 'accounts' does not exist on type 'Vue'. ERROR in index.ts (25,50): error TS2339: Property 'checkedAccounts' does not

为什么TypeScript不推断值的类型以及如何避免这种行为

我在TypeScript中实现了类型安全路由器,在推断类型时遇到了麻烦 导出接口路由{ 匹配(路径:字符串):Args | void; 构建(args:args):字符串; } 导出类型Routes={[Tag in keyof State]:Route}; 导出接口路由器{ 匹配(路径:字符串):部分|无效; 构建(状态:部分):字符串; } 导出函数createRouter(路由:路由):路由器{ /*…*/返回{}如有; } 常量根:路由={ 匹配:(路径)=>/*…*/未定义, 内部版本

以编程方式向TypeScript中具有类型安全性的类添加方法?

我正在为一个web服务编写一个客户端,其中一个端点从可能的20个参数中提取一个参数(可能会增加) 我在客户机上为这些可能性中的每一个公开了一个方法。现在我是这样做的: //keys.ts export const FUNCTION_ONE='FunctionOne'; export const FUNCTION_TWO='FunctionTwo'; ... export const FUNCTION_tworn='functiontworn'; //client.ts 将*作为键从“/keys”

如何清理typescript缓存?

我不知道去哪里看,而且 但它显然缓存了这些文件。因为这是我的进口 但是,它无法从旧路径导入文件 我搜索了所有definition.ts文件,所有文件都已更新 我在这里迷路了 好的。。我不确定它是如何修复的,但我重新格式化了我的Z驱动器来修复它。谢天谢地,我将工作代码与驱动器的其余部分隔离开来。看来唯一的办法就是清理你的工作文件夹 注意:在此之前 npm cache clean [<path>] npm缓存清理[] @tl;dr通常在我遇到这种情况时,删除build/lib/d

如何在Typescript中将对象的键限制为数组的字符串?

假设我有一个有效密钥名数组 const validKeys = ['a', 'b', 'c'] 如何创建只接受这些键的对象类型?这不起作用: interface MyObject { [key in validKeys]: number // for example } 如果您的validKeys是静态的,您可以为其创建一个类型。然后从该类型中,可以设置对象关键点的类型。 您可以执行以下操作: type ValidKeys = 'a' | 'b' | 'c' type MyObject

Typescript 启用标志--strictNullChecks时,null不可分配给void

根据TypeScript文档: 但是,当使用--stricnullchecks标志时,null和undefined仅可分配给void及其各自的类型。这有助于避免许多常见错误。如果要传入字符串或null或undefined,可以使用union类型字符串| null | undefined。下面再次介绍有关联合类型的更多信息 但是,当我尝试以下代码片段时: // This worked correctly let voidIsUndefined: void = undefined; // Whil

Typescript 如何用代理方法扩展superagent?

我没有找到超级代理的任何类型脚本定义。因此,当我尝试将TypeScript应用程序编译为JavaScript时,会收到错误消息: ts:类型“SuperAgentRequest”上不存在属性“proxy” 我已经创建了一个包含声明的文件,但我不知道还有什么要做 declare module 'superagent-proxy'; 我想我想定义一些高阶函数,它接受超级代理并以某种方式返回带有代理的超级代理 这是我迄今为止最好的尝试: import * as request from 'super

TypeScript泛型函数param和返回类型推断

这两个函数定义之间有什么区别 使用第一个getProperty,TypeScript可以推断返回的类型。但第二个失败了 函数getProperty(对象:T,键:K){ 返回obj[键]; } 函数getProperty2(对象:T,键:keyof T){ 返回obj[键]; } 设obj={ 答:1,, 名称:'测试', } const name2=getProperty(obj,'name'); name2.length;//这是确定的,name2被推断为字符串 const name3=ge

联合中不存在Typescript属性

我有以下几种: Foo { foobar: any } Bar { fooBarBar: any; } 这样定义的函数: this.api.submit(param: Foo | Bar) 用法: this.api.submit(param.foobar) // does not exist on Bar Error: Property 'foobar' does not exist on type 'Foo| Bar'. Property 'foobar' does not e

如何使用Typescript模拟命名导出

我在开玩笑地模仿UserService。以下是服务的外观: //UserService.ts export const create=async body=>{ …保存到数据库。。。 } export const getById=async id=>{ …从数据库返回用户。。。 } 我的测试如下所示: //auth.test.ts 从“../services/UserService”导入*作为UserService; jest.mock('../services/UserService');

Typescript 类型脚本:一个类型可以在它自己的键上参数化吗?

我想创建一个类型,其中的值是对其自身属性的引用。大致如下: type T = {[k:string]: keyof *a reference to this type*}; // 这样你就可以写这样的东西: const t:T = { a:"b", // valid b:"a", // valid c:"d" // invalid since "d" is not a property of t }; 在不分解类型或预先明确指定属性的情况下,这是可能的吗?没有具体的类型T有这样

Typescript 库中未捆绑环境类型脚本定义

我正在使用TSDX工具构建react typescript库。我在@types/目录中导出了许多类型,当我在应用程序中使用这些类型时,编译器会很清楚地找到它们 然而,在我的构建过程中,它们并没有被复制到我的输出包中,这让我感到惊讶,因为它们是通过代码引用的(代码确实被正确绑定了) 信不信由你,这实际上是故意的 您可以在tsconfig.json中定义类型的位置,并且希望它们始终位于最终构建中(因为它们没有移动)。i、 e.鉴于这种结构: src/app.ts types/app.d.ts Ty

stackblitz typescript项目没有';我不认识比金

当你在上面创建一个typescript项目时,结果发现它有一个问题 它不知道BigInt。虽然代码运行良好,但我仍然希望错误消失:) 因此,在上述情况下,我可以添加以下内容 declare function BigInt(inp: number | string); 这样做有效,错误消失了。但是当我添加更多的代码时,就像这样 declare function BigInt(inp: number | string); function convert(inp: string): BigIn

Typescript 为什么“--isolatedModules”需要“导出类型”?

我不明白到底发生了什么,也不明白为什么要在引擎盖下这样做: 如果Something是一种类型,那么当启用--isolatedModules时,为什么从“别处”导出{Something}会产生错误 相反,如果SomeThing是一个值,或者如果--isolatedModules未启用,为什么从“别处”导出{SomeThing}不是一个错误 为什么从“别处”指定导出类型{SomeThing}可以修复该错误 (背景信息) 有: 仅键入导入和导出 这个特性是大多数用户可能永远不会想到的; 但是,如

Typescript decorator-此处接受的参数太少,无法用作decorator

我正在尝试编写一个decorator,该decorator接受一个方法,如果该方法没有在指定的超时(使用方法参数指定)内完成,则会抛出一个错误。如果不指定超时,则会导致方法运行时,就好像不存在参数一样 export const setMethodTimeout = (): Function => { return function(target: any, propertyKey: string | symbol, descriptor: PropertyDescriptor) {

Typescript 打字与遗传

我可以像这样为函数CustomErr创建打字: declare class CustomErr extends Error { constructor(message: string); } function CustomErr(message: string) { var err = new Error(message) Object.setPrototypeOf(err, CustomErr.prototype) return err } CustomEr

Typescript 在这个端点中,我的NestJS控制器和TypeORM发生了什么?

我遇到了一个非常奇怪的错误,我真的不知道为什么会发生 我正在尝试查询所有博客帖子状态(只有三种——草稿、已发布和已存档)以发送回我的前端。在我的控制器中,我将路线定义为: @Controller('blog/posts/statuses') export class BlogPostStatusController { constructor( private readonly blogPostStatusService: BlogPostStatusService

什么是typescript编译器的默认库值?

默认情况下,--lib是从--target派生而来的: 注意:如果未指定--lib,则会显示默认的库列表 注射。注入的默认库包括: For——目标ES5:DOM、ES5、ScriptHost For--目标ES6:DOM、ES6、DOM.Iterable、ScriptHost 同一文档说明默认的--target值为ES3: 指定ECMAScript目标版本: “ES3”(默认设置) “ES5” “ES6”/“ES2015” “ES2016” “ES2017” “ES2018” “ES201

Typescript 自动为字段或属性创建用户定义的类型保护?

在使某些代码严格兼容模式时,我经常遇到如下模式: 接口项{ foo?:foo; } 接口Foo{ 酒吧:字符串; } 声明常量项:项[]; items.filter(item=>!!item.foo.map(item=>item.foo.bar);//错误!item.foo可能未定义 这会在--stricnullchecks中创建错误,因为定义了item.foo的信息不会传播 总的来说,我一直在创建一次性的防护装置来处理类似的事情 函数hasFoo(item:item):item是item&{

Typescript:[编译时]可写(-readable)数组/对象,带;“作为常量”;类型变窄

使用,可以很好地将对象/数组文本的类型缩小到其元素 e、 g (如果没有作为常量,T将是类型T=(字符串|数字)[],这是非常广泛的,有时是不需要的。) 现在的问题是,由于as const的结果,数组也变成了readonly,而我只是希望它有一个狭窄的类型。因此,它不能传递给以下函数 function fiveLover(pairs: [5, string][]): void { pairs.forEach((p) => console.log(p[1])); } fiveLover

Typescript NestJS初始化和传递请求上下文的最佳实践是什么

我有一个全局拦截器,需要初始化我自己的请求上下文DTO,我希望这个DTO可以在处理当前请求的控制器中访问 到目前为止,我找到的解决方案是创建请求范围的可注入RequestContext类: import { Injectable, Scope } from '@nestjs/common'; import { Request } from 'express'; import { IncomingHttpHeaders } from 'http'; @Injectable({ s

TypeScript获取类实例的类型

我使用的是公开SDK的,但不是您可以使用它创建的某个对象(user)的类型(UserModule) import { Magic } from 'magic-sdk'; // ... function useMagicLinkAuthentication() { const [magicReady, setMagicReady] = usePromise<Magic>(); const [isMagicInitialized, setMagicInitialized] =

如何在typescript中获取范围数数组

我想得到一个范围数数组,我写了这个函数 public static getNumberRange(from: number, to: number): number[] { return Array(to - from + 1).fill().map((v, i) => i + from); } 但我遇到了一个问题,因为fill()需要一个参数 任何解决方案???这在JavaScript中都是一件恼人的事情。如果您创建一个X长度的数组(例如新数组(5)),您将得到[空×5]

Typescript “的联合类型”;keyof";及;“字符串”;具有工作自动完成功能

我想公开一个方法,该方法将某些联合类型作为参数,并为此提供自动完成功能。由于这种联合类型可以通过声明合并进行扩展,因此自动完成是这里的一个关键特性 但是,如果用户在使用my library时不使用TypeScript,或者不想向声明中添加特定的类型,那么它应该或者接受联合类型的字符串 简而言之:我希望联合类型自动完成,但也允许任何与之不匹配的字符串 仅使用联合类型的示例: 导出接口值{ “变体-a”:未定义, “变体b”:未定义, “变体c”:未定义, } 函数doAThing(名称:T):vo

Typescript 基于其他接口创建对象/接口

我想实现将接口A作为输入的通用函数,并在此基础上创建一个“包装器对象” 因此: 接口输入{ 字段1:字符串 字段2:布尔值 字段3:日期 } 接口输出{ [key:keyof T]:{//我知道这不是有效的TS,只是为了解释我的意思 值:T[键] someFlag:boolean//默认设置为false } } 常量magic=():输出=>{…} 常量magicObject=magic() magicObject.field1.value//undefined magicObject.fiel

Typescript 从函数对象参数推断返回类型

在TypeScript中,我可以从如下的泛型参数推断返回类型。当我使用位置参数时,它工作得很好 const handleAndReturnNumber = (n: number) => n const handleAndReturnString = (n: number) => String(n) const doSomething1 = <R extends (n: number) => ReturnType<R>>(handle: R) =>

Typescript 反应性和计算特性问题Vue 3-成分API

原则上,我有以下菜单: 项目1(编号1涂成橙色)具有以下路径:http://localhost:8080/#/documents 项目2(2号漆成橙色)具有以下路径: http://localhost:8080/#/documents/1 以及具有以下路径的项目3(涂成橙色的编号3): http://localhost:8080/#/documents/2 例如,当我单击项目2时,用蓝色框标记的组合框应设置为默认值,表中的项目应按此值过滤,如以下屏幕截图所示: 所以我想要的是,当我点击项目1

Typescript中的泛型会导致意外错误

以下代码: export type Mixin<T extends any, Y extends string> = { [P in keyof T & string as `${Y}_${P}`]: T[P] }; 有人知道原因是什么吗?似乎找不到解决方案,解决方案是动态定义属性(意味着定义JS代码),另外,我必须手动定义TS属性,使用我想要“动态”定义的实际函数类型,所以这是一个动态静态解决方案,但我只找到了这些。 代码可以在这里找到:TS确实会发疯,但我无法识别这部分

如何在没有任何安全风险的情况下将连接字符串详细信息放入Typescript页面?

我有一个typescript应用程序,我需要从该应用程序连接到Azure blob存储。我已将blob连接字符串详细信息放置在Azure key vault服务中。但要调用密钥库URL来访问这些密钥和机密,我需要在我的Typescript页面中包含客户端ID和客户端机密。 但作为首页,任何人都可以从浏览器控制台看到这些秘密。 我们怎样才能摆脱这种局面。 下面的任何一个解决方案都可以解决我的问题。请告诉我们 1.是否有任何方法可以从浏览器控制台窗口隐藏这些秘密。所以它在浏览器中不可见 2.是否有任

对象分解结构中的Typescript条件类型

我想调用一个只有对象作为参数的函数。此对象可以是两个发生冲突的不同接口(1+属性具有相同的键,但可能的值不同) 在我的主函数中,如果对象中的类型值为iffoo,我想调用getFoo;如果对象中的类型值为ifbar,我想调用getBar interface Foo { title: string number: 1 | 2 } interface FooWithType extends Foo { type: 'foo' } interface Bar { title: stri

Typescript 在打字稿中无效。为什么要从console.log获取结果?

我没听懂,请给我解释一下。当我们用LET-ok输入void时,我得到了 但是,当我们在此处键入示例时: let foo: void; foo = 2; 无论如何,我会得到“嗨”。为什么?我在试图理解时有点困惑 我没听懂,请给我解释一下。当我们用LET-ok输入void时,我得到了 但是如果我在头脑中正确地解析它,问题的后半部分将void显示为函数的返回类型(在这种情况下,为nothing),而问题的前半部分显示一个void变量,Typescript只允许将null或未定义的作为赋值 第二部分工

Typescript 从别名泛型中提取类型

我正在尝试提取泛型的类型,但无法访问它。所以我不能使用提取 从“@expo/vector icons”导入{Feather} //类型如下,但未导出 常量羽毛:图标 // ... 如何获取图标列表枚举? 我正在尝试使用“crosshair”|“database”|“disc”|“zap”… 我也试过这个 type TypeOfFeather=typeof羽毛 type extractGeneric=T扩展TypeOfFeather?X:从来没有 这显然不起作用,因为TypeOfFeather

Typescript 扩展节点模块的类(Discord.Js<;Client>;)。错误:找不到模块'/@类型';

我对TypeScript相当陌生,我想在创建一个非常简单的Discord机器人的同时学习该语言,使用一个名为的模块。 我的问题是,我想扩展它们的类,并添加我自己的方法和对象,以便在名为myClient 我的目录树(不包括/dist) @types/index.d.ts import { Client, Message, PermissionString, TextChannel, VoiceConnection, Collection, ClientOptions } from "di

Typescript Vscode api-选择类似文件的下拉列表

我目前正在进行vscode扩展 目前,我正在从工作区文件夹中检索所有.h文件。我希望用户能够选择他想要的.h,并且可以像下图中那样选择它,但是使用之前检索到的.h: 你知道怎么做吗?或者此功能的名称,以便我可以参考文档,因为我找不到它的名称。我找到了答案,如果有人有与我相同的问题,我将其张贴在这里 let items: vscode.QuickPickItem[] = [ { label: "Test1 Label", descr

  1    2   3   4   5   6  ... 下一页 最后一页 共 812 页