问题标签 [typescript-2.5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
41 浏览

function - 为什么打字稿中的这两种函数类型不同?

使用打字稿,我发现为什么分配给不同局部变量的两个不同函数会导致不同的签名。我认为一个更明确。

我认为a这只是一个更明确的写作版本z,但不知何故,它被输入得更自由地接受了any

使用 Typescript 2.5.2 版

0 投票
1 回答
936 浏览

typescript - 覆盖静态方法时的 TS2417

编辑 - 更新代码以反映评论

我正在将一些旧代码从 TS 2.2.1 升级到 TS 2.5.2,并遇到编译问题。尝试编译以下代码时:

我收到以下错误:

0 投票
1 回答
617 浏览

reactjs - TypeScript 错误不会满足

我正在使用 TypeScript 2.5.2。我曾尝试降级到 TypeScript 2.2.2,相同的代码已在另一个项目中运行。

**错误:文件:Weather.tsx' 严重性:'错误'消息:'类型参数'(响应:IListItem)=> void'不可分配给类型参数'(值:{天气:IListItem;})= > 无效 | 许诺”。参数“响应”和“值”的类型不兼容。

类型'{天气:IListItem; }' 与类型 'IListItem' 没有共同的属性。'**

语法有什么问题?

GitHub上的源代码

VSCode 截图

0 投票
1 回答
1119 浏览

typescript - 打字稿动态导入

使用当前最新版本的 TS (v2.5.x) 可以使用变量而不是硬编码来动态导入模块吗?

例如:

当我使用变量时,我收到错误“找不到模块'。'”。当我使用变量时,看起来 TS 正在将其转换为那行代码,因此我将该变量设置为什么无关紧要。

我查看了这些相关线程:

在 TypeScript TypeScript ES 中动态导入模块 动态`import()`

0 投票
1 回答
847 浏览

typescript - 创建一个装饰器方法,将参数传递给 angular4 ngOnInit()

我正在尝试使用装饰器将验证器方法传递到 angular4 反应形式以进行验证。

零件

装饰器尝试 - 不完整

如何让装饰器将其参数传递给表单中的入口控件?

干杯

0 投票
0 回答
47 浏览

typescript - 打字稿限制类中的类型组合

我有一个简单的例子:

这不会编译,因为编译器不知道这animalType === 'dog'意味着type of animal === IDog(并且bark不存在于ICat)。

animal.type有没有一种方法可以限制类 ContainsAnimal 类型,以便animalType始终相互对应?

0 投票
1 回答
879 浏览

visual-studio-2017 - SourceMap 读取失败

我有一个 WinJS-UWP-Application,我使用 TypeScript 2.5。我刚刚从 VS2015 升级到 VS2017。当我想调试我的 WinJS-UWP-Application 时,我的 .ts-Files 中的断点没有被记录,因为 SourceMap 没有正确读取。我没有更改项目的任何配置。
在输出中,我收到以下消息:

SourceMap ms-appx://8d7814f6-7286-4475-8ed8-be1c489c2253/js/main.js.map 读取失败:无法识别 URI 前缀。我的 CompilerOptions 是:

该应用程序的最低版本和目标版本是:10.0.14393.0
我是否需要在 VS2017 中设置其他任何内容?

编辑:
重现步骤:

  1. 在 VS 17 中使用 Min 和 Target 版本创建一个新的 UWP WinJS-App:10.0.14393.0
  2. 删除 js\main.js
  3. 在js文件夹中添加main.ts文件
  4. 创建一个 tslib 文件夹并将 winjs.d.ts 插入 [例如来自 DefinetlyTyped]
  5. 在 main.ts 中添加以下代码:

  1. 从 VS17 模板添加一个新的 tsconfig.json。
  2. 使用 AnyCPU 配置启动应用程序

预期结果:在应用程序中,您会看到以下文字:

内容在这里!
来自 TypeScript 端的你好

在输出中,您会看到以下两条消息:

“WWAHost.exe”(脚本):加载了“脚本代码(MSAppHost/3.0)”。
SourceMap ms-appx://32fb2864-03cf-4387-8a05-6c65a66c5a48/js/main.js.map 读取失败:无法识别 URI 前缀。

编辑 2: main.js.map 的内容:

EDIT3:
打字稿构建设置:

如果我删除tsconfig.json,则正确创建源映射。但我需要tsconfig.json其他一些选项,所以删除它不是一个选项!

0 投票
1 回答
63 浏览

node.js - 打字稿:定义文件中的类和接口在编译的.js中变得需要

我有一个带有两个重要文件的 Typescript 项目:

前几行app.ts看起来像这样:

编译 后的前几行app.js是:

但是,没有models.js生成,因为它只是一个.d.ts声明文件。因此,当我运行它并require调用 get./models时,我得到以下异常:

找不到模块“./models”

这是Visual Studio Professional 2017,我没有tsconfig.json文件。但是,我的项目编译设置如下所示:

编译设置

我究竟做错了什么?这是要了我的命。

0 投票
2 回答
2002 浏览

typescript - Operator '!==' cannot be applied to types "A" | "B", but '===' can?

I have read Operator '==' cannot be applied to types x and y in Typescript 2 and it has not been informative to my case.

In TypeScript 2.5.3, we define many models using string enums of the form:

And then apply comparators to them like:

without complaint.

Now, in this code fragment:

I get the Operator '!==' cannot be applied to types '"MORNING"' and '"NIGHT"' compile error in the else if condition, but not in the if condition, which uses the same (but opposite) comparator.

Reducing the example further, the following compiles:

And this compiles:

Whereas this throws an error (in the else if line):

What fundamental property of the type-checker have I misunderstood?

(Note: The final examples are reduced from more complex situations, so I cannot use a simple else.)

0 投票
2 回答
8402 浏览

angular - 单击选项卡时,我需要在 angular2 中加载特定组件

我正在尝试在选项卡中加载组件。在单击特定选项卡时,我需要加载特定组件。但它在导航到该组件时会加载所有组件。

.html

.ts