问题标签 [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.
typescript - 了解 TypeScript 中的特定继承类型
有人可以解释一下 TypeScript 中的这种继承是什么意思吗?有没有机会为我们在扩展关键字之后的所有内容创建别名?
typescript - TypeScript const 断言和声明之间有什么区别?
我刚刚阅读了const
TypeScript 3.4 RC 中的新断言功能,但我没有看到它与使用const
声明有何不同。
我使用公告页面中的一个示例对此进行了测试,该示例显然演示了 using as const
( const
assertion) 如何防止文字类型被扩大(例如,"circle"
to string
)。
但是,当我删除const
断言并改用const
声明时,编译器输出或控制台输出没有任何变化,也没有引发错误。
那么有什么区别呢?公告页面列出了使用const
断言的三个原因:
• 该表达式中的文字类型不应扩展(例如,不要从“hello”变为字符串)
• 对象文字获得只读属性
• 数组文字变为只读元组
但它没有解释断言和声明的不同之处。
typescript - 类型安全原型修补
假设我在模块中有以下接口src/Container
现在我想从另一个文件扩展这个类src/extensions/transformSomething
然后我定义了这个扩展函数的实现
我现在可以将它附加Container<T>
到
获胜。
现在,假设我已经有一个不同的、功能更强大、原型更少的表示形式的实现,它遵循以下形式:
例如:
我可以编写一个将其转换为this
基于 - 的函数的方法:
现在,将我们transformSomethingF
转换为在原型中工作的函数非常简单:
那么,我们可以对上面的接口扩展做同样的事情吗?我们能改变吗
进入
???
我们可以通过定义以下类型来做到这一点:
但是当我尝试这个时,试图实际使用Container.transformSomething
我看到以下问题:
(参数)x:任何
无法调用其类型缺少调用签名的表达式。类型“从不”没有兼容的调用签名.ts(2349)
参数“x”隐式具有“任何”类型.ts(7006)
有没有办法让它工作?
typescript - 有没有办法满足一些基于枚举字段的接口?
我正在尝试创建一个通用函数,它将基于枚举参数返回一个精确的接口,但任何尝试都失败了。
也许我错过了什么或做错了什么?
如果我将结果输入到该界面,一切都很好,但实际上对我来说有点没用。
javascript - Typescript 3 Angular 7 StopPropagation 和 PreventDefault 不起作用
我在 div 中有一个文本输入。单击输入应将其设置为焦点并停止 div 单击事件的冒泡。我已经在文本输入事件上尝试了stopPropagation
and preventDefault
,但无济于事。控制台日志显示 div click 仍然执行。如何停止执行 div 点击事件?
typescript - 输入“部分深”' 不可分配给类型 'Schema<{}>'。TS2345
使用lodash pick提取 JSON 对象的值时,我在打字稿中收到此错误。
这是 JSON 对象:
我有一个字符串 [] :
然后使用 pick 从 const 模式中仅获取键值对,如果我使用:
我收到以下错误
node.js - 如何在 tsconfig 中添加子目录模块别名?
我可以毫无问题地设置模块别名:
这行得通。但是,我(实际上是我的客户,将来想将项目的某些部分提取为模块)想要创建子目录作为不同路径的别名(假设所有目录作为值都存在,并且我无法更改实际目录结构):
撇开这是否是一个好的模式/实践不谈(因为我被要求这样做),这在技术上是否可行,而不涉及物理目录结构(并且不使用第 3 方依赖项)?(我使用的是 Typescript 3.4.3 和 Vscode 1.33.1)
typescript - 如何定义将类型作为强类型参数的 Typescript 函数
我想创建一个函数,该函数接受export class
扩展特定类型的类型(创建并正常导入)。我有一个Page
类和许多派生类。用简单的英语,我想要一个函数 accept Page
, DerivedPage
, AnotherDerivedPage
classes(而不是实例),显然,试图避免any
并保持强类型。
我该怎么做?
typescript - 我可以强制 Typescript 编译器用于类导入的后缀吗
如果我们有这样的打字稿导入:
转译为:
有没有办法强制编译器为“Core_1”变量使用不同于“_1”的后缀?
我想做的是让编译器使用随机数而不是 1(可能是 7),如下所示:
在我的用例中,我希望能够在同一浏览器窗口中加载脚本的副本,该副本可能具有相同的文件,但脚本的升级版本。旧脚本基本上会自行关闭,但新脚本不会有任何变量或命名空间冲突。
reactjs - 使用通用 React 组件时,在 TS 3.2+ 中出现错误
此代码使用 TypeScript 3.1.x 编译得很好
但是如果我用 TypeScript 3.2 或更高版本编译它,我会得到
这是 TS 3.2 中的回归还是 3.2 修复了我的代码正在利用的漏洞?
有趣的是,这段代码在 3.1 中也无法编译
有错误