我看过React项目和示例,人们决定使用TypeScript代替ES6。想知道我们使用ES6无法实现什么,将TypeScript与React一起使用可以做到这一点吗?
答案 0 :(得分:2)
想知道我们使用ES6无法实现的事情,这可以通过将TypeScript与React一起使用来实现?
TypeSafety。 TypeScript提供编译时类型检查,而ES6 / Pure JavaScript不提供这些检查:http://www.typescriptlang.org/ / Why TypeScript
答案 1 :(得分:0)
我确定您知道,ES6是javascript的附加功能。 Typescript是javascript的超集,也实现了这些功能。如果您还希望将ES7功能与打字稿一起使用,则可以对其进行配置。因此Typescript和ESX是独立的。正如Basarat所说,Typescript给您的是编译时类型检查:一种在代码中定义类型的能力和表示法。要绘制一个可能使用的图片,这是一个人为的示例。如果您有来自api的数据...
type Category = "Kitchen" | "Hardware" | "Linens";
//dont know exactly what users[n].about looks like yet
type Data = {
users: {name: string, id: string, about: any}[];
products: {name: string, id: string: category: Category}[];
}
export async function getUsers() {
const data: Data = await fetch.get('localhost:3000/api');
return data.users.map(u => u.name);
}
这里有许多好处。
data.users.map
时,我的IDE知道用户是一个数组,并为我建议数组函数。u => u.name
时,我的IDE将知道U的类型,并为我自动建议u.name和u.id 此外,如果我尝试创建函数addProduct
,我也可以提取Product
的类型定义,然后像这样再次使用它:
export function addProduct(product: Product) {
data.products.push(product);
}
...如果您尝试使用该功能,但不使用上面Category
中定义的字符串之一,则也会收到错误消息!
addProducts({name: "Missile Launcher", id: "Boom10001", Category: "Artillary"});