2016-10-13 3 views
4

Я знаю, что могу это сделать:Распаковать аргумент массива непосредственно параметрам?

function (value: [boolean, string]) { 
    const [boolValue, stringValue] = value; 

    // make use of boolValue and stringValue 
} 

Но я в состоянии сделать что-то вроде этого?

// doesn't work 
function ([boolValue: boolean, stringValue: string]) { 
    // make use of boolValue and stringValue 
} 
+0

Какая ошибка возникает у вас? Это нормально в ES6 (без типов), поэтому это, похоже, проблема с TS. – Bergi

+0

@ Bergi это дает много ошибок, делая это таким образом; похоже на недействительный синтаксис. Первая ошибка: '' expected' (вместо ':') –

+2

Возможный дубликат [Типы в разрушении объектов] (http://stackoverflow.com/questions/39672807/types-in-object-destructuring) –

ответ

5

Хорошо, я понял, может также опубликовать ответ. Это работает:

function ([boolValue, stringValue]: [boolean, string]) { 
    // make use of boolValue and stringValue 
} 
+1

Покрыто довольно хорошо на https://blog.mariusschulz.com/2015/11/13/typing-destructured-object-parameters-in-typescript. –