首页
学习
活动
专区
圈层
工具
发布

TypeScript 2.9+ 版本中的几个知识点

/config.json'); config.debug === true // true 复制代码 当重写为 TypeScript 之后,仅仅是将 require 语法改写成 ES Module,而不做其他修改...它被认为是安全版的 any,与 any 不同的是,unknown 仅能赋值给 any、unknown 类型,以及 unknown 上不存在任何属性与方法。...(); // any 上有任意的属性和方法 u.method(); // unknown 没有被断言到一个确切类型之前,不具备任何属性和方法 复制代码 当然...断言为 string 类型 const oStr = str.toUpperCase(); // HELLO function doSome(x: unknown) { if (typeof...(如,不应该从字面量类型 hello 到 string 类型) 对象字面量类型属性只读 数组字面量成为 readonly tuples 即: let obj = { x: 10, y: ['hello

1.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    TypeScript 4.7 beta 发布:NodeJs 的 ES Module 支持、新的类型编程语法、类型控制流分析增强等

    本篇是笔者的第三篇 TypeScript 更新日志,上一篇是 「TypeScript 4.6 beta 发布:递归类型检查增强、参数的控制流分析支持、索引访问的类型推导」,你可以在此账号的创作中找到。...上版本回顾 TypeScript 4.6 版本的工作重心再次回到了类型能力这一部分,包括增强了启发式地递归类型检查、支持了索引访问类型地类型推导、参数类型地控制流分析支持等,我们来简单地回顾一下。.../commonjs/index.cjs" } TypeScript 会在使用 ESM 导入时去 import.types指定的位置查找类型文件,而在 CJS 导入下去 require.types 查找类型文件...计算属性的类型控制流分析 Control-Flow Analysis for Computed Properties 继 4.6 版本以后,4.7 版本在类型控制流分析上再次迈出了一步。...本次支持的是计算属性(即 obj['key'] 这样的属性访问方式)的类型控制流分析。

    6.4K30

    组合类型与类型保护_TypeScript笔记9

    身上的可枚举属性浅拷贝到target: T上,因此返回值类型为T & U 交叉类型A & B既是A也是B,因此具有各个源类型的所有成员: interface A { a: string; } interface...类型保护 typeof variable === 'type'是用来确定基本类型的惯用手法,因此TypeScript能够识别typeof,并自动缩窄对应分支下的联合类型: let x: number |...id是实例属性,类上不存在 x.id; // 类实例的类型 let y: typeof A.prototype; let z: A; // 二者类型等价 z = y; // 错误 prop是静态属性...,实例上不存在 z.prop; z.id; 也就是说,类实例的类型等价于构造函数prototype属性的类型。...但这仅在TypeScript的编译时成立,与JavaScript运行时概念有冲突: class A {} class B extends A {} // 构造函数prototype属性是父类实例,其类型是父类实例的类型

    1.9K20

    如何处理TypeScript中的可选项和Undefined

    undefined通常会出现在几个关键地方: 对象中未初始化或者不存在的属性 函数中被忽略的可选参数 用来表明请求值丢失的返回值 可能未被初始化的变量 TypeScript拥有处理上述所有问题的工具。...当你对一个对象访问并不存在的属性时,JavaScript将会返回undefined,而不是报错。 在TypeScript严格模式下,这意味着下面几种情况。...如果你在IDE中把鼠标悬停在Foo上,你会看到TypeScript实际上已经把bar定义为number | undefined的联合类型。...TypeScript可以理解这类检查,并可以使用它们来收窄对特定代码类型的检查范围(类型收窄)。 我们可以对bar属性使用 typeof, 用来检查它是否是undefined。...而且也支持c对象,用来表明bar属性是undefined 。 TypeScript也会注意这段代码。在if子句中,会把bar属性的类型收窄为number。

    4.7K10

    在 TypeScript 中使用类型守卫的 5 种方式,你都知道吗

    类型守卫是一种TypeScript技术,用于获取变量类型信息,通常使用在条件块语句中。类型守卫是返回布尔值的常规函数,接受一个类型并告诉TypeScript是否可以缩小到更具体的类型。...类型守卫具有唯一的属性,可以确保测试的值返回的是布尔值类型。...TypeScript使用了一些内置的JavaScript操作符,比如typeof、instanceof和in操作符,这些操作符用于确定一个对象是否包含属性。...类型守卫可以让你指导TypeScript编译器在特定的上下文中推断出变量的特定类型,确保参数的类型与你指定的一致。 类型守卫非常类似于特征检测,允许您检测值原型和属性。...in的基本语法如下: propertyName in objectName 在下面的例子中,in 检查 house 属性是否存在。如果存在,则返回布尔值true,如果不存在,则返回false。

    2.9K30
    领券