TypeScript记录学习

73 阅读2分钟

// run: ts-node 基本类型.ts
var num = 1.24323;
//数组
var names = ['asd', 'asd', 'asd'];
var hobbys = ['asd', 'asdasd', '123ad'];
//联合类型
var s = 1;
var sex = ['男', 2, '2'];
var animals = [1, 'dog', 'cat', 34];
//函数类型:函数参数类型和返回值类型
//函数声明
function getInfo(age, name) {
    return age + name;
}
getInfo(1, 'dagou');
//函数表达式-直接通过参数的方式指定了类型
var getInfos = function (age, name) {
    return age + name;
};
console.log(getInfos(1, 'small cat'));
//函数表达式-同时指定参数和返回值类型
var getInfoss = function (age_, name_) {
    return age_ + name_;
};
console.log(getInfoss(1, 'small cat'));
//可选参数
/**
 * 可选参数:在可传可不传的参数名称后面添加?(问号)
 * 注意:可选参数只能出现在参数列表的最后,也就是说可选参数后面不能再出现必选参数
 * @param variety
 * @param size
 * @returns
 */
function getDog(variety, size) {
    return 'good dog:' + variety + size;
}
console.log(getDog());
console.log(getDog('big'));
// console.log(getDog(5))
console.log(getDog('big', 5));
/**
 * console.log:
 * good dog:undefinedundefined
 * good dog:bigundefined
 * good dog:big5
 *
 */
//对象类型
var flowers = {
    size: 10,
    name: '食人花',
    getType: function () {
        return '木科';
    }
};
var flowerss = {
    size: 10,
    name: '食人花',
    getType: function () {
        return '木科';
    }
};
console.log(flowers);
//对象可选属性
function getdesk(desk) {
    return desk.name + desk.size;
}
console.log(getdesk({ name: 'asd', size: 10 }));
var dog = {
    name: 'dog',
    size: 10,
    getInfo: function () {
        return "i am dog";
    }
};
var lemon = { name: '柠檬', size: 10 };
//元组
var latlng = [23.12312, 34.123123, 1]; //这是数组,元素个数不限制
var latlng_ = [23.12312, 34.123123]; //这是元组,明确说明有几个元素,并说明每个元素类型
//类型推断
// 在 TS 中,某些没有明确指出类型的地方,
// TS的类型推论机制会帮助提供类型换句话说:
// 由于类型推论的存在,这些地方,类型注解可以省略不写!
// 发生类型推论的2种常见场景:1声明变量并初始化时2决定函数返回值时
function getage() {
    return '18 years old';
}
//字面量类型
/**
 * 通过代码提示我们可以发现str1的类型是string,而str2的类型是 'hello word'。'hello word'就是字面量类型
 * 任何类型都可以作为字面量类型
 * 字面量类型使用场景,通常用于对参数的限制,结合联合类型一起使用,有点像枚举
 */
var str1 = 'hello word';
var str2 = 'hello word';
var str3 = 'hello word';
var num1 = 18;
/**
 * direction的类型是 'up' | 'down' | 'left' | 'right'
 * @param direction
 */
function changeDirection(direction) {
    console.log(direction);
}
changeDirection('up');
//枚举类型
var Direction;
(function (Direction) {
    Direction[Direction["UP"] = 0] = "UP";
    Direction[Direction["DOWN"] = 1] = "DOWN";
    Direction[Direction["LEFT"] = 2] = "LEFT";
    Direction[Direction["RIGHT"] = 3] = "RIGHT";
})(Direction || (Direction = {}));
function changeDirectionByenum(direction) {
    console.log(direction);
}
changeDirectionByenum(Direction.DOWN);
/**
 * 给枚举类型设置初始值,不设置就从0自增
 */
var Directioninit;
(function (Directioninit) {
    Directioninit[Directioninit["UP"] = 10] = "UP";
    Directioninit[Directioninit["DOWN"] = 11] = "DOWN";
    Directioninit[Directioninit["LEFT"] = 12] = "LEFT";
    Directioninit[Directioninit["RIGHT"] = 13] = "RIGHT";
})(Directioninit || (Directioninit = {}));
/**
 * 字符串枚举
 * 有一个字符串类型,其它都要是字符串类型
 */
var DirectionString;
(function (DirectionString) {
    DirectionString["UP"] = "up";
    DirectionString["DOWN"] = "down";
    DirectionString["LEFT"] = "left";
    DirectionString["RIGHT"] = "right";
})(DirectionString || (DirectionString = {}));
//any类型
var tag;
function swapname(param1, parma2) {
}
swapname(1, 2);
swapname('2', true);