当前位置:网站首页>TypeScript入门
TypeScript入门
2022-07-05 06:23:00 【Heerey525】
1、前提
安装好node
,然后全局安装typescript
npm install typescript -g
2、调试工具
新建一个tsdemo.ts
文件,随便写一个函数
function fn() {
let web: string = "hello world";
console.log(web)
}
fn();
可以使用命令,转换为js文件,然后运行
tsc tsdemo.ts
node tsdemo.js
上面运行比较麻烦一点
可以安装ts-node
,就可以直接运行tsdemo.ts
npm install -D ts-node
安装后,如果ts-node tsdemo.ts
报错的话,再安装@types/node
npm install -D tslib @types/node
ts-node tsdemo.ts
3、基础类型与用法
// string类型
const str: string = 'hello world';
// object类型
const obj: {
name: string, age: number } = {
name: '小白',
age: 20
}
// 通过接口定义objInterFace类型,实现复用 interface把可重复使用的类型注解,定义为统一的接口
interface objInterFace {
name: string;
age: number;
height?: number; // 非必选值
[propName: string]: any; // 可包含任意数量的其它属性(属性名是字符串类型,属性值是任何类型)
skill(): string; // 可以设置方法,返回值是字符串类型
}
const obj2: objInterFace = {
name: '小白',
age: 20,
other1: null,
skill() {
return '技能'
}
}
const obj3 = {
name: '小白',
age: 20,
other2: '任意值',
skill() {
return '技能'
}
}
const fnInterface = ( e: objInterFace ) => {
console.log('姓名:', e.name, ' 年龄:', e.age, ' 其他:', e.other)
}
fnInterface(obj3)
// 内容是string类型的数组
const arr: string[] = ['1', '2'];
// 内容是number类型的数组
const arr1: number[] = [1, 2];
// 内容是numbe或者stringr类型的数组
const arr2: (number | string)[] = ['1', 2, '3'];
// 内容是对象的数组
const arr3: {
name: string, age: number }[] = [
{
name: '小白', age: 20 },
{
name: '小黑', age: 21 }
]
// 类型别名
type arr4Type = {
name: string, age: number }
const arr4: arr4Type[] = [
{
name: '小白', age: 20 },
]
// 类
class arr5Class {
name: string
age: number
}
const arr5: arr5Class[] = [
{
name: '小白', age: 20 },
]
// 元组
const tuple: [number, string, boolean] = [1, '2', true]
const tuple1: [number, string, boolean][] = [
[1, '2', true],
[9, '8', false]
]
// 类型注解
let num: number;
num = 1;
// 类型推断
let num2 = 1
// 规定fn函数,接收first和second两个参数,返回的结果是number类型
function fn(first: number, second: number): number {
return first + second;
}
const fnResult = fn(1, 2)
// noReturn函数无返回值,添加void注解
function noReturn(): void {
console.log('没有返回结果');
}
// 函数参数为对象
function fn1({
first, second}: {
first: number, second: number}): number {
return first + second;
}
const fnResult1 = fn1({
first: 1, second: 2 })
未完待续…
边栏推荐
- Client use of Argo CD installation
- Chinese remainder theorem acwing 204 Strange way of expressing integers
- Leetcode-9: palindromes
- Leetcode dynamic programming
- 时间很快,请多做有意义的事情
- Day 2 document
- 【LeetCode】Easy | 20. Valid parentheses
- 5. Oracle tablespace
- Redis publish subscribe command line implementation
- Leetcode recursion
猜你喜欢
Paper reading report
Alibaba's new member "Lingyang" officially appeared, led by Peng Xinyu, Alibaba's vice president, and assembled a number of core department technical teams
MySQL advanced part 1: View
背包问题 AcWing 9. 分组背包问题
Sorting out the latest Android interview points in 2022 to help you easily win the offer - attached is the summary of Android intermediate and advanced interview questions in 2022
SPI details
LeetCode 0107. Sequence traversal of binary tree II - another method
Real time clock (RTC)
Day 2 document
ollvm编译出现的问题纪录
随机推荐
Simple selection sort of selection sort
2022/6/29-日报
Leetcode-6110: number of incremental paths in the grid graph
Leetcode-6108: decrypt messages
3.Oracle-控制文件的管理
__ builtin_ Popcount() counts the number of 1s, which are commonly used in bit operations
Leetcode divide and conquer / dichotomy
Sword finger offer II 058: schedule
Operator priority, one catch, no doubt
How to generate an image from text on fly at runtime
AE tutorial - path growth animation
MySQL advanced part 2: SQL optimization
Ffmpeg build download (including old version)
Leetcode-556: the next larger element III
MySQL advanced part 2: the use of indexes
【LeetCode】Easy | 20. Valid parentheses
Sqlmap tutorial (II) practical skills I
11-gorm-v2-02-create data
博弈论 AcWing 894. 拆分-Nim游戏
MySQL advanced part 1: stored procedures and functions