我仍然没有找到好的答案."target"选项定义了结果将在哪个版本的Javascript上运行."lib"选项在任何地方都描述得不那么清楚.似乎这是一种更精细的方式来描述目标环境,但奇怪的是,它会影响到你可以在.ts源文件.认为TS作为JS的超集是什么,那么为什么它会影响到,例如,Promise()是否可用?这似乎不仅定义了目标,还影响了Typescript中可用的函数.有人能解释清楚这一点吗?或者直接给出答案(typescriptlang.org或我看过的书中都没有,例如,"指定要包含在汇编中的库文件",这完全没有任何解释).

推荐答案

Typescript没有任何内置类型所有类型都来自一组基本定义(位于Typescript安装目录的lib文件夹中).默认情况下,target定义了包括哪些libs.例如,docs个州:

注意:如果未指定--lib,则会插入库的默认列表.注入的默认库包括:

--target ES5: DOM,ES5,ScriptHost美元

--target ES6: DOM,ES6,DOM.Iterable,ScriptHost美元

其基本思想是,虽然target is处理语言功能(更具体地说,哪些语言功能需要向下编译,例如for of或arrow函数),但lib选项处理运行时环境具有哪些功能(即内置对象的外观、它们是什么).

理想情况下,应该使用给定target的默认值libs.然而,我们的环境可能支持一些运行时功能,但不支持语言功能,或者我们可能以es版本更低的运行时为目标,并填充一些运行时功能,这通常可以用于某些事情(例如:promise ).

Typescript相关问答推荐

当两个参数具有相同的通用类型时,如果没有第一个参数,则递减约束默认会导致第二个参数的错误推断

React Router SR:useLocate()只能在路由组件的上下文中使用

如何修复VueJS中的val类型不能赋给函数

如何使用属性作为具有Generics的TypScript类中的类型守护?

typescribe警告,explate—deps,useEffect依赖项列表

从typescript中的对象数组中获取对象的值作为类型'

在键和值为ARGS的泛型函数中未正确推断类型

打印脚本丢失函数的泛型上下文

在嵌套属性中使用Required

对扩展某种类型的属性子集进行操作的函数

如何重构长联合类型?

我可以以这样一种方式键入对象,只允许它的键作为它的值吗?

类型脚本可以推断哪个类型作为参数传递到联合类型中吗?

如何从接口中省略接口

为什么数字是`{[key:string]:UNKNOWN;}`的有效密钥?

使用强制转换编写打字函数的惯用方法

仅当类型为联合类型时映射属性类型

在tabel管理区域react js上设置特定顺序

Typescript 和 Rust 中跨平台的位移数字不一致

如何将 MUI 主题对象的自定义属性与情感样式组件中的自定义props 一起使用?