首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

前端应该掌握的Typescript基础知识

:type 布尔类型(boolean) let flag: boolean = true 数字类型(number) let num: number = 8; 字符串类型(string) let str:...' | 'DELETE' null、undefined null, undefined 是其他类型的子类型, 可以赋值其他类型的变量 strictNullChecks 为 true 的话不能赋值其他类型...常用于没有具体返回值的函数 const handler = (param: string):void => {} never 类型 永远不存在的值 任何类型的字类型, 可以赋值任何类型 但是任何类型都不可赋值...如果变量定义的时候没有赋值, 默认是 any 类型 let x; // 可以赋值为任何类型的值 let x1 = '生生世世'; // x1会推论成sring类型, 不能给x1赋值为其他类型了 // x1...string | number | boolean; // let f: F; // run(f); type F = (a:number | string | boolean) => string ;

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

深度讲解TS:这样学TS,迟早进大厂【04】:原始数据类型

,默认为编译通过 注意,使用构造函数 Boolean 创造的对象不是布尔值: let createdByNewBoolean: boolean = new Boolean(1); // Type 'Boolean...' is not assignable to type 'boolean'. // 'boolean' is a primitive, but 'Boolean' is a wrapper object...字符串§ 使用 string 定义字符串类型: let myName: string = 'Tom'; let myAge: number = 25; // 模板字符串 let sentence: string...也就是说 undefined 类型的变量,可以赋值 number 类型的变量: // 这样不会报错 let num: number = undefined; // 这样也不会报错 let u: undefined...; let num: number = u; 而 void 类型的变量不能赋值 number 类型的变量: let u: void; let num: number = u; // Type 'void

41820

🔖TypeScript 备忘录:如何在 React 中完美运用?

工具 TypeScript Playground with React:可以在线调试 React + TypeScript,只能调试类型,并不能运行代码 Stackblitz:云开发工具,可以直接运行...: boolean; /** 数组类型 */ names: string[]; /** 用「联合类型」限制为下面两种「字符串字面量」类型 */ status: "waiting" | "...} 函数类型 type FunctionProps = { /** 任意的函数类型 ❌ 不推荐 不能规定参数以及返回值类型 */ onSomething: Function; /** 没有参数的函数...useState 如果你的默认值已经可以说明类型,那么不用手动声明类型,交给 TS 自动推断即可: // val: boolean const [val, toggle] = React.useState...这样: 当你写入的 type 匹配到 decrement 的时候,TS 会自动推断出相应的 payload 应该是 string 类型

2.7K21

类型即正义:TypeScript 从入门到实践(一)

属于 TypeScript 端独有的特性:类型,它也具有一套编程语言的特性,比如标志一个变量是 string 类型,一个函数的参数有三个,它们的类型分别是 string/number/boolean,返回类型为...变量的类型就被静态化了,在初始化时,就不能赋值其他的类型这个 tutureSlogan 变量了,比如我们将 number 类型的字面量赋值 tutureSlogan ,就会报错: const...tutureSlogan: string = 5201314 // 报错 Type '5201314' is not assignable to Type 'string' 这就是 TS 的强大之处...提示有些细心的同学可能对上面的报错信息有点不能理解,对于报错信息的后半段类型 string 可能理解,因为我们 tutureSlogan 限制了 string 类型,但是对于我们的赋值 5201314...string 原始类型,最后一个属性为 boolean 类型,所以我们为了 单个对象元素进行类型注解,我们使用了 interface 。

2.6K20

TypeScript进阶

类型断言 类型断言(Type Assertion)是开发者手动指定一个值的类型: 值或值 as 类型 在 tsx 语法(React 的 jsx 语法的 ts 版)中必须使用值 as 类型。...注意:与声明不赋值区分,声明不赋值会设为任意值类型:any 类型推论(Type Inference)是指编程语言在编译期中能够自动推导出值的数据类型的能力,它是一些强静态类型语言的特性。...let myFavoriteNumber: string | number; //允许 myFavoriteNumber 的类型string 或者 number,但是不能是其他类型。...定义只读属性(只读的约束存在于第一次对象赋值的时候,而不是第一次只读属性赋值的时候) interface Person { readonly id: number; name: string...): boolean; } let mySearch: SearchFunc; //定义mySearch类型为SearchFunc mySearch = function(source: string

95320

158. 精读《Typescript 4》

] as const); 另外之前版本的 TS 只能将类型解构放在最后一个位置: type Strings = [string, string]; type Numbers = [number, number...(foo, "hello"); 这段代码由于还没有执行到 foo,因此只匹配了第一个 x:string 类型,虽然后面 y: number, z: boolean 也是必选,但因为 foo 函数还未执行...: string, ...rest: any[]]; Class 从构造函数推断成员变量类型 构造函数在类实例化时负责一些初始化工作,比如为成员变量赋值,在 Typescript 4,在构造函数里对成员变量的赋值可以直接为成员变量推导类型...3 精读 Typescript 4 最大亮点就是可变元组类型了,但可变元组类型不能解决所有问题。...,通过重载可以这么做: import * as React from 'react'; import { useSelector } from 'react-redux'; type Function

75320

一篇朴实的文章带捋完TypeScript基础,方法是正反对比!

掘金这篇文章不错,于是分享大家。 文章更多的是代码,所以可以把文章链接发到电脑上打开看和练习。...布尔值是最基础的数据类型,在 TypeScript 中,使用 boolean 定义布尔值类型: 以下都编译通过的,并且给出了说明,一句话总结,是什么类型就要赋值什么类型,这句话够俗了吧 正确的写法 /...something.length; } 对象的类型——接口 正确的写法 // 赋值的时候,变量的形状必须和接口的形状保持一致(不能多也不能少,类型还必须一致) interface Person {...= 89757; // 不能被二次赋值❌ 数组的类型 正确的做法 let fibonacci: number[] = [1, 1, 2, 3, 5]; let fibonacci: Array<number...{ return something.length; } 类型别名 正确的做法 // 使用 type 创建类型别名,类型别名常用于联合类型 type Name = string; type NameResolver

1.1K20

TypeScript 基础教程

null、undefined: null,undefined :同js值类型,默认是所有类型的⼦类型所以,可以任意类型的变量赋值null、undefined any: 定义:任意值类型,可以赋值任意值类型...当前并无支持 type 类型别名 *** 定义:⼀个类型起⼀个新的名字,使⽤ type 作为声明关键字。...常用于复合类型数据变量的类型声明。 对象类型约定使用大写字母开头 。type 声明的类型,里面包含的属性必须刚好全部满足,不能多也不能少,否则编译将报错,可选属性除外。...type User = { name: string; sex: string; age: number; adult: boolean; isProgramer?...*** // 使用 类型别名声明类型 type User = { name: string; sex: string; age: number; adult: boolean; isProgramer

1K20

一个高扩展、可视化低代码前端,详实、完整,你不来看看?

useTreeNode(nodeId); //通过ref, dom 赋值rx-id const handleRef = useCallback((element: HTMLElement |...React 中没有明确的卡槽概念,但是React.ReactNode 类型的 props 就相当于具名卡槽了。 在可视化设计器中,是需要卡槽的。...比如 antd 的 List 组件,它有 header 跟 footer 两个 React.ReactNode 类型的属性,这就是两个卡槽。...用这样的方式处理卡槽,卡槽是不能被拖入的,只能通过属性面板的配置打开或者关闭卡槽: 并且,卡槽只能是一个独立节点,不能是节点数组,相当于把React.ReactNode转换成了React.ReactElement...type ReactComponent = React.FC | React.ComponentClass | string export interface IComponentMaterial

1.7K180

typescript4.2新特性

2021年2月23日,微软发布了typescript4.2版本,我们来看一下有哪些新的特性 更加智能的保留类型别名 TypeScript可以使用type定义一个类型,用来标识某个变量的类型,并且可以自动推断出赋值后新变量的类型...,比如以下代码: export type BasicPrimitive = number | string | boolean; export function doStuff(value: BasicPrimitive...如下图所示: 但是我们将代码稍做改造,如下: export type BasicPrimitive = number | string | boolean; export function doStuff...let StringsAndMaybeBoolean: [...string[], boolean?]...type NumStr = [number, string]; type NumStrNumStr = [...NumStr, ...NumStr]; 但有时,这些元组类型可能会意外增长为巨大的类型,这可能会使类型检查花费很长时间

87210

检查JavaScript文件_TypeScript笔记18

除非再开启--checkJs选项,会对所有的.js文件进行校验 Option Type Default Description --allowJs boolean false Allow JavaScript...: React.ReactNode; }> 因为在.js里没有指定泛型参数的类型时,默认为any,所以不报错。...类型为 Promise p; 除了这种来自外部声明(d.ts)的泛型外,还有一种自定义的“JavaScript 泛型”: // .js 声明泛型,但不填类型参数 /** @type{...on type '{ a: number; }'. obj.b = 2; 四.类型推断策略 类型推断分为赋值推断与上下文推断,对于.js有一些针对性的推断策略 赋值推断: Class 成员赋值推断 构造函数等价于类...string; method: () => void; method2: () => void; methodOnly: string | boolean } 具体规则如下: 属性类型通过构造函数中的属性赋值来确定

2.4K50
领券