// 最佳答案: 这样写:为什么呢?主要考虑 第S100行 这样有限制的字符串数组
// 尽管直接改写成string 也可以,但下面写法是最佳推荐写法 ,老师把这个作为思考题留给你,如果实在想不出来再在问答区提问
function sortChinese<T extends string>(arr: Array<T>): T[] {//Array<T>=T[]
return arr.sort(function (firstnum, secondnum) {
return (firstnum as any).localeCompare(secondnum, "zh-CN")
})
}
// S100 一些底层,如路由器底层泛型,用到了这种限制数据个数的值类型数组
type pathValueType = "searchFood" | ":foodname" | ":price"
let arr: Array<pathValueType> = ["searchFood", ":foodname"]
let result100 = sortChinese<pathValueType>(arr) //S101
// 不能将类型“"abc"”分配给类型“pathValueType”
let arr2: Array<pathValueType> = ["searchFood", ":foodname","abc"]