TS

2023-01-27  本文已影响0人  张_何
开发环境
function 函数名(参数名:参数类型, 参数名:参数类型): 返回值类型 {

}
let s:string="a";
let u:unknown;
u = "str";
s = u; // 报错,不能将unknown类型的变量赋值给string类型的变量
// 可以通过下面的方式赋值
if(typeof u==="string"){ 
  s = u;
}
// 也可以通过下面类型断言的方式赋值
s = u as string;
s = <string>u;

tsconfig.json 配置

include
"include" : [
  "./src/**/*"    //这里两个*表示任意目录,一个*表示任意文件
]
exclude
"exclude" : [
  "./src/hello/**/*"    //这里表示src/hello目录下的所有ts文件都不需要编译
]
extends
"extends": "./configs/base"
files
"files":[
  "core.ts",
  "sys.ts",
  "types.ts",
  ...
]
compilerOptions

webpack 打包ts代码
const path = require('path') // 引入path包
const HTMLWebpackPlugin = require('html-webpack-plugin'); //引入html 插件
const CleanWebpackPlugin = require('clean-webpack-plugin'); //引入插件
// webpack 中的所有配置信息都应该写在module.exports中
module.exports = {
  // 指定入口文件
  entry: "./src/index.ts",
  //指定打包文件所在目录
  output:{
    // 指定打包文件的目录
    path: path.resolve(__dirname,'dist'),
    // 打包后的文件
    filename:"bundle.js"
  },
  // 指定webpack打包时要使用模块
  module:{
    //指定要加载的规则
    rules:[
      {
        // 指定规则生效的文件
        test:/\.ts$/,
        // 要使用的loader
        use:'ts-loader',
        // 要排除的文件
        exclude:/node-modules/
      }
    ]
  }
  plugins:[
    new HTMLWebpackPlugin(
      options:{
        title:"自定义title"
      }
    ),
    new CleanWebpackPlugin(),
  ],
  // 用来设置引用模块
  resolve: {
    extensions: [ '.ts', '.js'], // 凡是以ts,js 结尾的文件都可以作模块使用
  }
}

class Person {
  constructor(name:string) {
    this._name = name;
  }
  private _name:stirng;
  get name() { // 注意这里没有下划线, 调用的时候可以直接Person对象.name
    return this._name;
  }
  set name(value: string) {
    this._name = name;
  }
}
const p = Person()
console.log(p.name); //通过.name调用get方法访问
p.name = "***"; //通过.name调用set方法赋值
class C{
  // 直接将属性定义在构造函数中
  constructor(public name:string, public age:number){}
}

// 等同于
class C{
  public name:string;
  public age:number;
  constructor(name:string, age:number){
    this.name= name;
    this.age = age;
  }
}
抽象类
接口
泛型
function fn2<T,K>(a:T, b:K): T{
  return a;
}
interface Inter{
  length: number;
}

function fn<T extends Inter>(a: T): number{
  return a.length;
}
上一篇 下一篇

猜你喜欢

热点阅读