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

9102年,隔壁公司新来女实习生问我什么是TypeScript

于是,TypeScript出现了 TypeScript 3.1 现已发布 最新版本文档地址 最新TypeScript版本文档地址 TypeScript不能说是一门完全全新语言,可以说它是一个基于javaScipt...它有时被称做“鸭式辨型法”或“结构性子类型化”。 TypeScript里,接口作用就是为这些类型命名和为你代码或第三方代码定义契约。...赋值后, x和y再也不能被改变了。 let p1: Point = { x: 10, y: 20 }; p1.x = 5; // error!...如果你不想指定类型TypeScript类型系统会推断出参数类型,因为函数直接赋值了 SearchFunc类型变量。 函数返回值类型是通过其返回值推断出来(此例是 false和true)。...使用传统 react脚手架 Create React App 中使用 TypeScript npx create-react-app my-app --typescript typescript

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

前端应该掌握Typescript基础知识

, 特别是一些很低级错误 帮助我们写代码时候提供更丰富语法提示, 方便查看定义对象上属性和方法 比如: 你函数传了一个对象, 你函数实现时候还得记住对象里面都有啥参数, 你定义参数名字是啥...TS 安装 npm init -y npm install typescript -g 编译 tsc --init tsc 数据类型 js 数据类型: 字符串(String)、数字(Number)..., 可以赋值其他类型变量 strictNullChecks 为 true 的话不能赋值其他类型 let str: string; str = null; str = undefined; 任意类型...:void => {} never 类型 永远不存在值 任何类型类型, 可以赋值任何类型 但是任何类型都不可赋值 never, 包括 any function error(msg: string...如果变量定义时候没有赋值, 默认是 any 类型 let x; // 可以赋值为任何类型值 let x1 = '生生世世'; // x1会推论成sring类型, 不能给x1赋值为其他类型了 // x1

57510

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

现代 JavaScript 世界,已经有很多大型库使用 TypeScript 重构,包括前端三大框架:React、Vue、Angular,还有知名组件库 antd,material,很多公司内部大型业务应用也在用...属于 TypeScript 端独有的特性:类型,它也具有一套编程语言特性,比如标志一个变量是 string 类型,一个函数参数有三个,它们类型分别是 string/number/boolean,返回类型为...变量类型就被静态化了,初始化时,就不能赋值其他类型这个 tutureSlogan 变量了,比如我们将 number 类型字面量赋值 tutureSlogan ,就会报错: const...提示有些细心同学可能对上面的报错信息有点不能理解,对于报错信息后半段类型 string 可能理解,因为我们 tutureSlogan 限制了 string 类型,但是对于我们赋值 5201314...,所以我们类型声明时候把函数输入参数类型和输出结果类型定义好就可以了。

2.6K20

4000字讲清 《深入理解TypeScript》一书 【基础篇】

= CardSuit.Clubs; // 类型安全 Card = 'not a member of card suit'; // Error: string 不能赋值 `CardSuit` 类型...event as HTMLElement; // Error: 'Event' 和 'HTMLElement' 任何一个都不能赋值另外一个 } 如果你仍然想使用那个类型,你可以使用双重断言。...对一个简单类型 Base 和 Child 来说,如果 Child 是 Base 子类,Child 实例能被赋值 Base 类型变量。...: let foo: never = 123; // Error: number 类型不能赋值 never 类型 // ok, 做为函数返回类型 never let bar: never = ((...为 false 时),但是 never 不能赋值其他任何类型,除了 never TypeScript 索引签名 JavaScript 一个对象类型索引签名上会隐式调用 toString 方法

1.9K30

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

结合英文原版里一些示例进行一些扩展,总结成这篇备忘录。 前置基础 阅读本文前提条件是: 熟悉 React 使用。 熟悉 TypeScript 类型知识。...也推荐看我 初中级前端高级进阶指南 这篇文章 ReactTypeScript 章节,这里不多赘述。...工具 TypeScript Playground with React:可以在线调试 React + TypeScript,只能调试类型,并不能运行代码 Stackblitz:云开发工具,可以直接运行...} 函数类型 type FunctionProps = { /** 任意函数类型 ❌ 不推荐 不能规定参数以及返回值类型 */ onSomething: Function; /** 没有参数函数... ) } 鸣谢 本文大量使用 react-typescript-cheatsheets 例子,加上自己润色和例子补充,英文好同学也可以读这个原文扩展学习

2.7K21

【文末送书】Typescript 使用日志

•数组类型•元组类型•字面量类型•接口类型 3、如果一个类型不能满足要求怎么办? •可空类型,默认任何类型都可以被赋值成 null 或 undefined。...例如:案例 doSomeThing 传一个参数时候被提示为 number 类型,传两个参数的话,第一个参数就必须是 string 类型。...,让我们能够明确 this 情况下,到静态类型提示。...// 如果函数所有参数,都可以赋值目标中找到,就能赋值 let fun1 = function (a: number, b: string) {}; let fun2 = function (a:...•Partial,将 T 类型都变为可选。•Exclude,从 T 剔除可以赋值 U 类型。•Extract,提取 T 可以赋值 U 类型

2.8K10

React实战精讲(React_TSAPI)

❝泛型指的是「类型参数化」:即将原来某种「具体类型进⾏参数化」 ❞ 像 C++/Java/Rust 这样 OOP 语⾔,可以「使⽤泛型来创建可重⽤组件,⼀个组件可以⽀持多种类型数据」。...❝主要「区别」是 JavaScript ,关心是变量「值」 TypeScript ,关心是变量类型」 ❞ 但对于我们User例子来说,使用一个「泛型」看起来是这样。...正常 TypeScript ,不需要使用这种变通方法。...---- TS_React:Hook类型类型推断 ❝绝大部分,TS都可以根据hook值来推断它们类型:也就是我们常说类型推断」 ❞ 何为类型推断,简单来说:「类型推断」就是「基于赋值表达式推断类型能...> Fragment 与 不同 Fragment 这个组件可以赋值 key,也就是索引, 不能赋值 ---- React.lazy lazy:允许你定义一个动态加载组件,这样有助于缩减

10.3K30

TypeScript 快速入门(基础篇)

它是 JavaScript 一个超集,TypeScript JavaScript 基础上添加了可选静态类型和基于类面向对象编程。...类型 别的类型不能赋值never类型, 而 never 类型可以赋值任意类型 void 类型 void 为 函数没有类型,一般用在没有返回值函数 # 如果方法类型为number, 则必须返回内容...names = 'XiaoMing' 此时names变量类型string names = 22 // TS 已经推断出了names 类型string,而不能赋值为 其它类型 console.log...或者string TS 函数 function 使用 #方法定义 传递参数 function getNum(str1:any,age:number):any{ console.log(str1...+'年龄为'+age) } getNum('张三',22) //输出结果为:张三年龄为22 # TS 仍然可以使用箭头函数 var ss = (str2:string,hobby:string

92720

React Native 导航:示例教程

构建移动应用程序时,首要考虑是如何处理用户应用程序导航问题,例如屏幕展示和屏幕之间切换。 React Navigation 是 React Native 最著名导航库之一。...什么是 React Navigation React Navigation 是一个独立库,可帮助我们 React 应用程序实现导航功能。...任何给定时间只有一个屏幕呈现用户,每个屏幕在被推入堆栈时显示,即当用户导航到某个屏幕时,它就被推到堆栈顶部。 想象一堆纸张。导航到一个新屏幕会将其放在堆栈顶部,而导航回去则会将其从堆栈移除。...React Navigation 向屏幕传递参数 向路由传递参数有两个简单步骤:传递参数,然后子路由或屏幕读取参数。...首先,将参数作为 navigation.navigate 函数第二个参数放入一个对象,从而将参数传递给路由: 然后,读取屏幕组件参数

20310

TypeScript入门

(0.8) 2014-10:Angular 发布了基于 TypeScript 2.0 版本 2015-04:微软发布了 Visual Studio Code 2016-05:@types/react...发布,TypeScript 可开发 React 2020-09:Vue 发布了 3.0 版本,官方支持 TypeScript 2021-11:v4.5 版本发布 # 特点 JS:动态类型、弱类型 TS..."number” 参数不能类型"string" 参数 */ getStrArr(123); /* 泛型参数默认类型 */ type IGetRepeatArr = (...“string"参数不能类型"number" 参数 */ getRepeatArr('123'); # 类型别名 & 类型断言 /* 通过 type 关键字定义了 I0bjArr 别名类型...类型 A: 类型 B // 关键字【infer】出现在类型推荐,表示定义类型变量,可以用于指代类型 // 如该场景下,将函数返回值类型作为变量,使用新泛型 R 表示,使用在类型推荐命中结果

1.4K20

TypeScriptReact、拖拽、实践!

React中使用结合TypeScript是非常便利。...而不是直接使用this.xxxx随意 class 新增变量。 然后,我们可以通过 TypeScript 特性阅读 React 声明(.d.ts)文件。以进一步了解React组件使用。...「函数组件」 正如其名,组件被定义成 JavaScript 函数,它第一个参数是 props 对象。TypeScript 会强制它「函数执行」返回值可以赋值 JSX.Element。...> 「类组件」 当一个组件由 class 创建而成「例如我们刚才实践Drag组件」,那么当我们使用该组件「即生成实例对象」时,则该实例类型必须赋值 JSX.ElementClass 或抛出一个错误...我们可以自定义这个类型,通过指定JSX.Element接口。然而,不能够从接口里检索元素,属性或JSX子元素类型信息。它是一个黑盒。

2.2K10

类型即正义:TypeScript 从入门到实践(三):类型别名和类

,然后通过联合操作符联合赋值 NameParams ;还带来了一个优势,我们返回值可以更加明确就是 Name 类型,这样 Name 变化,它可能变成 number 类型,那么也能很好反应这个变化,...接着我们 src/App.tsx 里面导入我们 MenuKey 类型别名,并替换对应 onClick 参数 key 类型注解为 MenuKey : import React, { useRef...; // ...其他一样 } 除了属性,我们还可以用 readonly 来修饰类中方法参数,比如我们设置此动物类型时,一般可以一个默认类型: class Animal { type:...,可以抽象类定义抽象方法,就像我们上面的 makeSound 方法,普通方法定义之前加上 abstract 关键字,这个抽象方法类似于接口里面的方法类型定义:1)注解参数和返回值 2)不给出具体实现...这就是常见 React 类组件类型注解和默认参数初始化场景,但是当我们学了类之后,我们可以简化一下上面的类组件类型注解和默认参数初始化操作: class Props { value: string

2.8K30
领券