开发
C#和typescript是同一个大佬设计,所以存在很大的相同,也有一些异同,参考如下:
语法 | C# | TS | 其他说明 |
---|---|---|---|
异步编程 | async | async | |
await | await | ||
Task<T> | Promise<T> | ||
Task | Promise | ||
指定类型 | string abc | abc: string | TS是放在后,C# 是放在前 |
(string name, int id ) abc | abc: { name: string, age: number } | C#叫命名元组,是一个语法糖 | |
object o | o: any | ||
int a long a float a ... | a: number | ||
bool b | b: boolean | ||
void | void | TS中经常出现在方法的返回类型中 | |
数组类型 | string[] abc | abc: string[] | |
方法返回类型 | public void abc() | abc(): void | 跟指定类型类似,TS是放在后,C# 是放在前 |
方法参数默认值 | public void abc(string name = "") | abc(name:string = "") : void | |
可空类型 | string? abc | abc?: string | |
拼接字符串 | var a = "程序"; var b = $"我是搞{ a }的"; | let a = "程序"; let b = `我是搞${ a }的`; | |
接口定义 | public interface Abc { string name; int age; } | interface Abc { name: string, age: number } | |
定义类型 | public class Abc { string name; int age; } | class Abc { name: string, age: number } 或者 type Abc = { name: string, age: number } | TS 两者的区别是 class在编译后会转为js, 而 type Abc的方式,则不会 |
解构 | var (firstName, lastName) = author | const { firstName, lastName } = author; | |
泛型 | interface IDatabase<T> { Task Insert(T item); Task<T> Get(stringid); } | interface Database<T> { insert(item: T):Promise; get(id: string):Promise<T>; } | |
IDatabase<T> abc | abc: Database<T> | ||
三个点符号 | var abc = { name: "" }; var zzz = { ...abc, age: 1 } 或者 var abc = [ 1,2,3 ] var zzz = [ ...abc,4,5,6] | 我理解为合并语法 |