typescript基础语法--变量/函数/指令/类
博客地址 :https://www.cnblogs.com/sandraryan/
要把ts文件引入到html中,首先要转码为js文件。
步骤:
终端运行: npm i -g typescript
tsc --init
然后再vscode中ctrl shift b, 点击watch
以后保存ts文件,js文件自动刷新
如果你觉得这个方法太简单 你可以选择写一行代码在终端重新编译一次,指令是: tsc ts文件名,进行编译
然后看看基本语法叭
声明变量:
先搞一个html文件吧转码后的js文件引进去,然后我们操作ts文件(你懂我意思吧)
这个是ts文件命名为ts1.ts
声明变量很简单,都写在注释里了~~~~
总之就是:
ts变量的声明
1.ts在声明变量时,要规定变量的类型,
2.如没有规定,会在第一次为变量赋值时确定它的类型
3.一旦一个变量的类型被确定,那么之后使用这个变量时,不能改变变量类型(会报错)
let a = 100;
console.log(1);
/**
* ts变量的声明
* 1.ts在声明变量时,要规定变量的类型,
* 2.如没有规定,会在第一次为变量赋值时确定它的类型
* 3.一旦一个变量的类型被确定,那么之后使用这个变量时,只能依托这个类型
*/
// a = 'ji';
// 声明变量时约束类型
let bol:boolean = true;
// bol = 2333;
// 声明数组list,数组中所有类型都是字符串
let list:string[] = ['hi','guys','how','do','you','do'];
console.log(list);
// 声明数组另一种方法
let arr:Array<string> = ['hi','guys','how','do','you','do'];
console.log(arr);
// 元组: 声明时规定每个元素类型,规定元素个数,即一个固定长度的类型不同的数组
let t:[boolean,string,number] = [false,'hi',233];
// 不能push 不能修改
// 声明枚举类型
//将所有的可能性一一列举在某个数据中,需要取值时可以用index,获取index可以用数据获取
//下标从0开始 也可手动设置下标设置好后,下标从该设置往后延续10 11 ...
enum Color {
//要枚举出来的数据本身
yellow,red,green,blue
}
console.log(Color);
console.log(Color['yellow']);
console.log(Color[1]);
// 声明一个any的数据类型
let an:any = 90;
an = 'hello';
an = [2,3,4];
console.log(an); // void类型的数据只能复制为null或者undefined
let v:void;
console.log(v);
这个是转码后的js文件
"use strict";
var a = 100;
console.log(1);
/**
* ts变量的声明
* 1.ts在声明变量时,要规定变量的类型,
* 2.如没有规定,会在第一次为变量赋值时确定它的类型
* 3.一旦一个变量的类型被确定,那么之后使用这个变量时,只能依托这个类型
*/
// a = 'ji';
// 声明变量时约束类型
var bol = true;
// bol = 2333;
// 声明数组list,数组中所有类型都是字符串
var list = ['hi', 'guys', 'how', 'do', 'you', 'do'];
console.log(list);
// 声明数组另一种方法
var arr = ['hi', 'guys', 'how', 'do', 'you', 'do'];
console.log(arr);
// 元组: 声明时规定每个元素类型,规定元素个数,即一个固定长度的类型不同的数组
var t = [false, 'hi', 233];
// 不能push 不能修改
// 声明枚举类型
//将所有的可能性一一列举在某个数据中,需要取值时可以用index,获取index可以用数据获取
//下标从0开始 也可手动设置下标设置好后,下标从该设置往后延续10 11 ...
var Color;
(function (Color) {
//要枚举出来的数据本身
Color[Color["yellow"] = 0] = "yellow";
Color[Color["red"] = 1] = "red";
Color[Color["green"] = 2] = "green";
Color[Color["blue"] = 3] = "blue";
})(Color || (Color = {}));
console.log(Color);
console.log(Color['yellow']);
console.log(Color[1]);
// 声明一个any的数据类型
var an = 90;
an = 'hello';
an = [2, 3, 4];
console.log(an);
// void类型的数据只能复制为null或者undefined
var v;
console.log(v);
引入html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script src="ts1.js"></script>
</body>
</html>
函数
ts中函数也很简单~ 举个例子
ts函数可以指定参数和返回值的类型,也可以添加默认值(在声明函数添加形参的时候)
// 函数
function fn(x:number,y:number):number{
return x+y;
}
let r:number = fn(3,4);
console.log(r); //
// 声明函数时规定函数参数类型和返回值的类型,函数调用时必须严格遵循这个规定,否则编码报错
// 为参数设置默认值,拥有默认值的参数应该声明在参数列表最后面
function fn2(x:number=10,y:number=20):number{
return x+y;
}
let r2 = fn2();
console.log(r2);
// 函数的剩余参数
// an是除了num之外的所有参数列表,成为剩余参数,类型规定为string,是个数组
function fn3(num:number,...an:string[]){
console.log(num);
console.log(an);
}
fn3(45,'a','b','c');
// 剩余参数也可以是个元组,规定类型
function fn4(num:number,...an:[string,boolean]){
console.log(num);
console.log(an);
}
fn4(45,'r',true);
转码后的js文件
"use strict";
// 函数
function fn(x, y) {
return x + y;
}
var r = fn(3, 4);
console.log(r); //
// 声明函数时规定函数参数类型和返回值的类型,函数调用时必须严格遵循这个规定,否则编码报错
// 为参数设置默认值,拥有默认值的参数应该声明在参数列表最后面
function fn2(x, y) {
if (x === void 0) { x = 10; }
if (y === void 0) { y = 20; }
return x + y;
}
var r2 = fn2();
console.log(r2);
// 函数的剩余参数
// an是除了num之外的所有参数列表,成为剩余参数,类型规定为string,是个数组/
function fn3(num) {
var an = [];
for (var _i = 1; _i < arguments.length; _i++) {
an[_i - 1] = arguments[_i];
}
console.log(num);
console.log(an);
}
fn3(45, 'a', 'b', 'c');
// 剩余参数也可以是个元组,规定类型
function fn4(num) {
var an = [];
for (var _i = 1; _i < arguments.length; _i++) {
an[_i - 1] = arguments[_i];
}
console.log(num);
console.log(an);
}
fn4(45, 'r', true);
类的声明
ts文件:
js文件:
抽象类
ts:
// 抽象类
abstract class People{
// 声明属性
readonly eyes:number = 2;
// 声明类的一个普通方法
public eat(){
console.log('i can eat');
}
//声明类的抽象方法,抽象方法不能有方法体,只能约束参数和返回值的类型
abstract run();
abstract sum(x:number,y:number):number; }
// 抽象类里不能实例化对象,因为抽象类中包含了抽象方法,抽象方法没有方法体,如果允许从抽象类中实例化对象,后面的逻辑都不成立
//let p = new People(); //报错:无法创建抽象类的实例。
js
"use strict";
// 抽象类
var People = /** @class */ (function () {
function People() {
// 声明属性
this.eyes = 2;
}
// 声明类的一个普通方法
People.prototype.eat = function () {
console.log('i can eat');
};
return People;
}());
typescript基础语法--变量/函数/指令/类的更多相关文章
- JAVA基础语法:函数(方法)、类和对象(转载)
4.JAVA基础语法:函数(方法).类和对象 函数 在java中函数也称为方法,是一段具备某种功能的可重用代码块. 一个函数包括这几部分: 函数头 函数头包括函数访问修饰符,函数返回值类型, 函数名, ...
- openresty开发系列14--lua基础语法3函数
openresty开发系列14--lua基础语法3函数 一)function (函数) 有名函数: optional_function_scope function function_name( ar ...
- python学习第五讲,python基础语法之函数语法,与Import导入模块.
目录 python学习第五讲,python基础语法之函数语法,与Import导入模块. 一丶函数简介 1.函数语法定义 2.函数的调用 3.函数的文档注释 4.函数的参数 5.函数的形参跟实参 6.函 ...
- flutter--Dart基础语法(三)类和对象、泛型、库
一.前言 Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,Flutter 开源.免费,拥有宽松的开源协议,支持移动.Web.桌面和嵌入式平台. ...
- python基础语法_9-0函数概念
http://www.runoob.com/python3/python3-function.html 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代 ...
- go基础语法-变量定义
1.基础定义 变量类型在变量名后 var a int var s string 2.定义并赋值 var a,b int = 1,2 var s string="abc" 3.类型推 ...
- java基础(环境设置,基础语法,函数数组)
框架图 环境搭建 课程中常见dos命令: dir : 列出当前目录下的文件以及文件夹 md : 创建目录 rd : 删除目录 cd : 进入指定目录 cd.. : 退回到上一级目录 cd/ : 退回到 ...
- Java基础语法04面向对象上-类-属性-方法-可变参数-重载-递归-对象数组
类 面向对象是一种思想,一般指将事务的属性与方法抽出总结为模板(类/class),处理事务时通过类创建/new出对象由对象的功能/方法去完成所要计算处理的事情. 面向过程:POP:以过程,步骤为主,考 ...
- javascript基础语法——变量和标识符
× 目录 [1]定义 [2]命名规则 [3]声明[4]特性[5]作用域[6]声明提升[7]属性变量 前面的话 关于javascript,第一个比较重要的概念是变量,变量的工作机制是javascript ...
随机推荐
- 只需一步,DLA开启TableStore多元索引查询加速!
一.背景介绍 Data Lake Analytics(简称DLA)在构建第一天就是支持直接关联分析Table Store(简称OTS)里的数据,实现存储计算分离架构,满足用户基于SQL接口分析Tabl ...
- 配置管理 ACM 在高可用服务 AHAS 流控降级组件中的应用场景
应用配置管理(Application Configuration Management,简称 ACM)是一款应用配置中心产品.基于ACM您可以在微服务.DevOps.大数据等场景下极大地减轻配置管理的 ...
- 洛谷1081 (NOIp2012) 开车旅行——倍增预处理
题目:https://www.luogu.org/problemnew/show/P1081 预处理从每个点开始a能走多少.b能走多少.可以像dp一样从后往前推. 但有X的限制.所以该数组可以变成倍增 ...
- 存储过程详解 -SQLServer
来源:http://www.cnblogs.com/knowledgesea/archive/2013/01/02/2841588.html 存储过程简介 什么是存储过程:存储过程可以说是一个记录集吧 ...
- NYoj 155最短路
//dij #include<stdio.h> #include<string.h> #include<queue> using namespace std; #d ...
- Java 分页对象
以前一直没有自己写过分页对象,自己模仿着写了一个分页对象,写完之后感觉也是挺简单的 package com.css.util; import java.io.Serializable;import j ...
- 如何在Liferay Custom JSP Fragment项目中加Java代码
先附上大神原文链接 Adding Dependencies to JSP Fragment Bundles 在开发Liferay的过程中,我们常常会利用Module Fragment来修改Lifera ...
- iscroll5在使用情况下click事件失效的问题
转载自:http://www.52html5.com/?p=2618 Bug描述: iOS.android4.4+下不能触发click事件. Bug解决: 调用iscroll插件,增加配置参数:cli ...
- PHP学习(字符串操作)
在PHP中,字符串的定义可以使用英文单引号' ',也可以使用英文双引号" ".单引号和双引号到底有啥区别呢? PHP允许我们在双引号串中直接包含字串变量.而单引号串中的内容总被认 ...
- 超实用的Java数组技巧攻略分享!
本文分享了关于Java数组最顶级的11大方法,帮助你解决工作流程问题,无论是运用在团队环境或是在私人项目中,你都可以直接拿来用! 声明一个数组(Declare an array) String[] a ...