问题标签 [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 回答
38 浏览

typescript - 了解 TypeScript 中的特定继承类型

有人可以解释一下 TypeScript 中的这种继承是什么意思吗?有没有机会为我们在扩展关键字之后的所有内容创建别名?

0 投票
2 回答
1930 浏览

typescript - TypeScript const 断言和声明之间有什么区别?

我刚刚阅读了constTypeScript 3.4 RC 中的新断言功能,但我没有看到它与使用const声明有何不同。

我使用公告页面中的一个示例对此进行了测试,该示例显然演示了 using as const( constassertion) 如何防止文字类型被扩大(例如,"circle"to string)。

但是,当我删除const断言并改用const声明时,编译器输出控制台输出没有任何变化,也没有引发错误。

那么有什么区别呢?公告页面列出了使用const断言的三个原因:

• 该表达式中的文字类型不应扩展(例如,不要从“hello”变为字符串)
• 对象文字获得只读属性
• 数组文字变为只读元组

但它没有解释断言和声明的不同之处。

0 投票
0 回答
47 浏览

typescript - 类型安全原型修补

假设我在模块中有以下接口src/Container

现在我想从另一个文件扩展这个类src/extensions/transformSomething

然后我定义了这个扩展函数的实现

我现在可以将它附加Container<T>

获胜。

现在,假设我已经有一个不同的、功能更强大、原型更少的表示形式的实现,它遵循以下形式:

例如:

我可以编写一个将其转换为this基于 - 的函数的方法:

现在,将我们transformSomethingF转换为在原型中工作的函数非常简单:

那么,我们可以对上面的接口扩展做同样的事情吗?我们能改变吗

进入

???

我们可以通过定义以下类型来做到这一点:

但是当我尝试这个时,试图实际使用Container.transformSomething

我看到以下问题:

(参数)x:任何

无法调用其类型缺少调用签名的表达式。类型“从不”没有兼容的调用签名.ts(2349)

参数“x”隐式具有“任何”类型.ts(7006)

有没有办法让它工作?

0 投票
1 回答
44 浏览

typescript - 有没有办法满足一些基于枚举字段的接口?

我正在尝试创建一个通用函数,它将基于枚举参数返回一个精确的接口,但任何尝试都失败了。

也许我错过了什么或做错了什么?

如果我将结果输入到该界面,一切都很好,但实际上对我来说有点没用。

0 投票
3 回答
63072 浏览

javascript - Typescript 3 Angular 7 StopPropagation 和 PreventDefault 不起作用

我在 div 中有一个文本输入。单击输入应将其设置为焦点并停止 div 单击事件的冒泡。我已经在文本输入事件上尝试了stopPropagationand preventDefault,但无济于事。控制台日志显示 div click 仍然执行。如何停止执行 div 点击事件?

0 投票
0 回答
332 浏览

typescript - 输入“部分深”' 不可分配给类型 'Schema<{}>'。TS2345

使用lodash pick提取 JSON 对象的值时,我在打字稿中收到此错误。

这是 JSON 对象:

我有一个字符串 [] :

然后使用 pick 从 const 模式中仅获取键值对,如果我使用:

我收到以下错误

0 投票
1 回答
1067 浏览

node.js - 如何在 tsconfig 中添加子目录模块别名?

我可以毫无问题地设置模块别名:

这行得通。但是,我(实际上是我的客户,将来想将项目的某些部分提取为模块)想要创建子目录作为不同路径的别名(假设所有目录作为值都存在,并且我无法更改实际目录结构):

撇开这是否是一个好的模式/实践不谈(因为我被要求这样做),这在技术上是否可行,而不涉及物理目录结构(并且不使用第 3 方依赖项)?(我使用的是 Typescript 3.4.3 和 Vscode 1.33.1)

0 投票
2 回答
179 浏览

typescript - 如何定义将类型作为强类型参数的 Typescript 函数

我想创建一个函数,该函数接受export class扩展特定类型的类型(创建并正常导入)。我有一个Page类和许多派生类。用简单的英语,我想要一个函数 accept Page, DerivedPage, AnotherDerivedPage classes(而不是实例),显然,试图避免any并保持强类型。

我该怎么做?

0 投票
0 回答
145 浏览

typescript - 我可以强制 Typescript 编译器用于类导入的后缀吗

如果我们有这样的打字稿导入:

转译为:

有没有办法强制编译器为“Core_1”变量使用不同于“_1”的后缀?

我想做的是让编译器使用随机数而不是 1(可能是 7),如下所示:

在我的用例中,我希望能够在同一浏览器窗口中加载脚本的副本,该副本可能具有相同的文件,但脚本的升级版本。旧脚本基本上会自行关闭,但新脚本不会有任何变量或命名空间冲突。

0 投票
1 回答
55 浏览

reactjs - 使用通用 React 组件时,在 TS 3.2+ 中出现错误

此代码使用 TypeScript 3.1.x 编译得很好

但是如果我用 TypeScript 3.2 或更高版本编译它,我会得到

这是 TS 3.2 中的回归还是 3.2 修复了我的代码正在利用的漏洞?

有趣的是,这段代码在 3.1 中也无法编译

有错误