问题标签 [typescript3.0]

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 回答
69 浏览

typescript - 返回与参数相同的对象

这可能是一种反模式,但我想返回相同的对象作为参数,在这种情况下像这样:

所以理想的是做这样的事情:

但是是的,这不太正确——我如何告诉 TypeScript 我正在返回其中一个参数?

0 投票
2 回答
250 浏览

typescript - 棘手的装饰类

我有以下代码片段,我觉得很难理解:

我很难理解上面的代码并且理解如下:

模型返回类型 T(我知道泛型是什么,所以不用担心解释泛型)其中

上面是什么意思?是否要保留现有属性以及额外的附加功能?

另外你能解释一下函数返回类型吗?我们是否要向 T 添加一个额外的构造函数?

0 投票
2 回答
5245 浏览

node.js - 使用 TypeScript 正确扩展 stream.Transform 类

我有这个代码:

问题是TS 类型不能识别(原型)方法。我是否错误地扩展了 Transform 类?

这是问题所在:

在此处输入图像描述

请注意,这是正确的:

但上面的课程似乎不一样。

0 投票
2 回答
1680 浏览

typescript - “ObjectConstructor”类型上不存在属性“setPrototypeOf”

我想实现 polyfill Object.setPrototypeOf,如下所述:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf

这是我的 polyfill.ts:

polyfills.d.ts:

我正在尝试 polyfill.d.ts 的许多可能性:

我仍然有以下错误:

[ts] 类型“ObjectConstructor”上不存在属性“setPrototypeOf”。您的意思是“getPrototypeOf”吗?lib.es5.d.ts(164, 5): 'getPrototypeOf' 在这里声明。

我将相当大的应用程序迁移到 TypeScript 3.0.3,这就是我需要实现 polyfill 的原因。

找到解决方案:

删除 polyfill 就足够了,并且:

更多: Typescript - 扩展错误类

0 投票
1 回答
125 浏览

typescript - Typescript 中元组参数的文字值

我知道我可以根据函数的输入值将泛型分配给元组类型,例如

但是我想要文字值,就像这样

我怎样才能做到这一点?

0 投票
1 回答
92 浏览

typescript - 使用泛型将字符串转换为枚举

如何使用 TypeScript 中的泛型将字符串转换为枚举?

0 投票
2 回答
1066 浏览

typescript - 基于鉴别器从类型联合中提取类型

在下面的示例中,如何为 in 提供正确的action参数输入withoutSwitchReducer

此处与 Intellisense 的代码相同:TS Playground Link

0 投票
3 回答
25952 浏览

javascript - 如果 esModuleInterop 是 true 配置 TypeScript 转换,我是否需要明确的 allowSyntheticDefaultImports?

我需要确认以下理论。根据TS docs,可以在tsconfig.json中设置两个选项。

  1. --allowSyntheticDefaultImports:允许从没有默认导出的模块进行默认导入。这不会影响代码发出,只是类型检查。

  2. --esModuleInterop:发出 __importStar 和 __importDefault 帮助程序以实现运行时 babel 生态系统的兼容性,并启用 --allowSyntheticDefaultImports 以实现类型系统的兼容性。

当我四处搜索时,我看到两者都设置为true(至少就我所针对的行为而言)。但是,据我了解文档、TS 和转译为 JS,同时使用它们是没有意义的。

我认为,我可能只使用后者并完全删除前者。然而,由于谨慎和谦虚,我并不完全确定并担心我正在做一些不那么光明的事情而没有意识到这一点。

我担心这是不恰当的事情,稍后会在驴子上咬我,导致数小时的哀叹和拉扯头发,同时拼命解决问题。怀疑的基础是这两个选项都可用,所以我推断有四种情况需要所有组合(真/假等),但我无法想象它们是哪一种。

如果--esModuleInterop: truecompilerOptions中跳过--allowSyntheticDefaultImports是否完全安全?如果是这样,为什么我们有这个选项?

额外的问题:这两个选项何时需要所有四种组合(true/false )?

0 投票
0 回答
6440 浏览

typescript - “any”类型的参数不能分配给“never”类型的参数

在下面得到这个错误,
error TS2345: Argument of type 'any' is not assignable to parameter of type 'never'.



我在第 173 行和第 180 行都收到此错误

TypeScript“类型”错误的任何方向?

0 投票
1 回答
1472 浏览

typescript3.0 - 带有 $(document).ready 的 Typescript 3.0

在 Typescript 中订阅 jQuery document.ready() 的一般描述方法似乎如下

但是在 Typescript 3.0 中我遇到了一个错误..

这是一个错误还是正确的签名是什么。