在前端开发领域,Vue3 与 TypeScript 的组合备受青睐。Vue3 带来高效灵活的开发体验,TypeScript 则提供强大的类型安全和可维护性。本文将详细介绍如何使用 Vue3 和 TypeScript 进行开发,文章内容将按照以下顺序展开:
npm install -g @vue/cli
vue create my-vue3-ts-project
典型的 Vue3 + TypeScript 项目结构如下:
my-vue3-ts-project/
├── node_modules/
├── public/
│ ├── favicon.ico
│ └── index.html
├── src/
│ ├── assets/
│ ├── components/
│ ├── composables/
│ ├── router/
│ ├── store/
│ ├── types/
│ ├── views/
│ ├── App.vue
│ └── main.ts
├──.browserslistrc
├──.eslintrc.js
├──.gitignore
├── babel.config.js
├── package-lock.json
├── package.json
├── README.md
└── tsconfig.json
TypeScript 是一种强类型的编程语言,它的类型系统和语法为开发者提供了强大的工具来确保代码的正确性和可维护性。
包括boolean
、number
、string
、null
、undefined
和symbol
。
let isDone: boolean = false;
let decimal: number = 6;
let name: string = "Alice";
let u: undefined = undefined;
let n: null = null;
let sym: symbol = Symbol();
可用类型加方括号或泛型数组类型表示。
let list: number[] = [1, 2, 3];
let list: Array = [1, 2, 3];
表示已知元素数量和类型的数组,各元素类型不必相同。
let tuple: [string, number];
tuple = ["hello", 42];
定义一组命名常量,成员值可默认递增或手动指定。
enum Color {
Red,
Green,
Blue,
}
let c: Color = Color.Green;
enum Color {
Red = 1,
Green = 2,
Blue = 4,
}
指定参数和返回值类型,也可用类型别名定义函数类型。
function add(a: number, b: number): number {
return a + b;
}
type AddFunction = (a: number, b: number) => number;
let addFunc: AddFunction = add;
用接口或类型别名定义。
interface Person {
name: string;
age: number;
}
let person: Person = {
name: "Alice",
age: 30,
};
type Person = {
name: string;
age: number;
};
let person: Person = {
name: "Alice",
age: 30,
};
用?
表示可选属性,readonly
表示只读属性。
interface Person {
name: string;
age?: number;
readonly id: number;
}
联合类型表示值可为多种类型之一,交叉类型将多个类型合并为一个。
let value: string | number;
value = "hello";
value = 42;
interface A {
a: number;
}
interface B {
b: string;
}
type