typescript 打字稿函数示例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript 打字稿函数示例相关的知识,希望对你有一定的参考价值。

const double = (x: number) => x * 2;
const hello = (x: string) => `Hello ${x}`;
const conversion = (x: number) => `Hello ${x.toString()}`;

interface Mappable<T> {
  map: <R>(fn: (x: T) => R) => Mappable<R>;
  valueOf: () => T;
}

const identity = <T>(value: T): Mappable<T> => ({
  map: <R>(fn: (x: T) => R): Mappable<R> => identity(fn(value)),
  valueOf: () => value,
});

const a = identity(3);
const b = a.map(double);
const vB = b.valueOf();
console.log(vB); // 6

const c = identity('cat');
const d = c.map(double); // COMPILE TIME ERROR
const vD = d.valueOf();
console.log(vD);

const e = c.map(hello);
const vE = e.valueOf();
console.log(vE); // Hello cat

const f = a.map(conversion);
const vF = f.valueOf();
console.log(vF); // Hello 3

const g = a.map(double).map(conversion);
const gF = g.valueOf();
console.log(gF); // Hello 6

以上是关于typescript 打字稿函数示例的主要内容,如果未能解决你的问题,请参考以下文章

typescript 打字稿泛型示例

typescript 打字稿工厂示例

typescript 打字稿对象示例

typescript 打字稿类示例

typescript 打字稿索引签名示例

typescript 打字稿备忘单 - 语法功能和示例