TypeScript note 01

Hello TypeScript

ts文件经过编译生成js文件。

基本类型

类型声明

  • 类型声明是TS非常重要的一个特点

  • 通过类型声明可以指定TS中变量(参数、形参)的类型

  • 指定类型后,当为变量赋值时,TS编译器会自动检查值是否符合类型声明,符合则赋值,否则报错

  • 简而言之,类型声明给变量设置了类型,使得变量只能存储某种类型的值

  • 语法:

  • let 变量: 类型;

    let 变量: 类型 = 值;

    function fn(参数: 类型, 参数: 类型): 类型{ ... }

  • 自动类型判断

  • TS拥有自动的类型判断机制
  • 当对变量的声明和赋值是同时进行的,TS编译器会自动判断变量的类型
  • 所以如果你的变量的声明和赋值时同时进行的,可以省略掉类型声明

  • 类型断言

    • 有些情况下,变量的类型对于我们来说是很明确,但是TS编译器却并不清楚,此时,可以通过类型断言来告诉编译器变量的类型,断言有两种形式:

      • 第一种

        • let someValue: unknown = "this is a string";
          let strLength: number = (someValue as string).length;
      • 第二种

        • let someValue: unknown = "this is a string";
          let strLength: number = (<string>someValue).length;
let a:number;
//a="123" 不能将类型“string”分配给类型“number”。
let b:number = 123;
let f = false;
//f = 12 不能将类型“number”分配给类型“boolean”。

function sum(a:number,b:number):number{
    return a + b;
}


let a3 : 10;
let b3 : 4 | 3;
b3 = 4;
b3 = 3;
//b3 = 5;不能将类型“5”分配给类型“4 | 3”。
let c3 : number | string;
//c3 = false;不能将类型“boolean”分配给类型“string | number”。

//(不指定类型)或者申明为any:相当于关闭ts类型检查  不建议使用
//d 也可以赋值给任意变量
let d :any;
d = 10;
d = true;
c3 = d;

//unknown 一个类型安全的any
let e : unknown;
e = true;
//c3 = e  不能将类型“unknown”分配给类型“string | number”。

//类型断言
e = d as string;
e = <string>d

function fn():void{
    return null
}

function fn1():never{
    throw new Error('报错的函数')
}

//- object
  
    let obj: object = {};
    obj = {name:'jack'}

    let o:{name:string,age?:number}
    o = {name:"jack"}

    //任意字符串类型的属性名,任意类型的属性值
    let object:{name:string,[proName:string]:any}
    object = {name:"jack",age:18,isShow:true} 

    
//- array
  

    let list: number[] = [1, 2, 3];
    //let list: Array<number> = [1, 2, 3];

    
/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些思路。 首先,您需要安装obsidian插件工具包和TypeScript支持。然后,您可以创建一个新的TypeScript项目,并添加obsidian API的类型定义。 接下来,您可以创建一个类来处理提醒逻辑。在这个类中,您可以使用obsidian API来获取当前笔记和设置提醒。您可以使用JavaScript的定时器功能来周期性地触发提醒。 以下是一个简单的示例代码: ``` import { Plugin } from 'obsidian'; export default class ReminderPlugin extends Plugin { intervalId: number; async onload() { console.log('Reminder plugin loaded'); // Set reminder interval to 1 minute this.intervalId = setInterval(() => { this.remind(); }, 60000); } async onunload() { console.log('Reminder plugin unloaded'); // Clear reminder interval clearInterval(this.intervalId); } async remind() { // Get current note const currentNote = this.app.workspace.getActiveFile(); // Show reminder message this.app.workspace.showNotice( `Don't forget to review ${currentNote?.basename}!`, 5000 ); } } ``` 在这个例子中,我们创建了一个名为ReminderPlugin的类,并在其中实现了周期性提醒的逻辑。我们在插件加载时设置了提醒间隔,并在插件卸载时清除了定时器。我们使用了`getActiveFile`方法来获取当前笔记,并使用`showNotice`方法来显示提醒消息。 请注意,这只是一个简单的示例,您需要根据您的需求进行更多的定制和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值