Можно ли определять типы пользовательских функций в Typescript - PullRequest
0 голосов
/ 09 мая 2020
const obj: Person = { first: 'John', last: 'Thomas'};
interface Person {
first: string;
last: string;
}

Чтобы указать, что объект имеет первое и последнее свойство, мы указываем его как тип Person, есть ли аналогичная функция для функции в Typescript. Например,

const Fun1:(p:Person)=>void = (p) => {
    console.log('first function',JSON.stringify(p))
}

const Fun2:(p:Person)=>void = (p) => {
    console.log('second function',JSON.stringify(p))
}

console.log(Fun1(obj))
console.log(Fun2(obj))

Fun1 и Fun2 являются функциями того же типа, поэтому мы можем определить какой-нибудь тип в TypeScript, например,

type Function1 = (p:Person)=> void

const Fun1:Function1 = (p) => {
    console.log('first function',JSON.stringify(p))
}

const Fun2:Function1 = (p) => {
    console.log('second function',JSON.stringify(p))
}

console.log(Fun1(obj))
console.log(Fun2(obj))

1 Ответ

0 голосов
/ 09 мая 2020

Да, в Typescript можно определить типы пользовательских функций двумя способами. Первый способ: type SomeFunction = (arg1: string, arg2: number) => void; Второй способ:

interface SomeFunction {
(arg1:string, arg2:number):void
}

И затем мы можем использовать этот тип настраиваемой функции при определении функций следующим образом

const newFunction:SomeFunction = (arg1,arg2) => { console.log(arg1,arg2) }
...