typescript не конвертирует number в string

const x:any = 5;
foo(x);

...

 function foo( p: string) {
    console.log('foo',p, typeof(p))
}

Консоль: foo 5 number

Ожидалось: foo '5' string или ошибка.

Почему нет автоматической конвертации или хотя бы ошибки? Что с этим делать?

Спасибо!

PS: Я попробовал онлайн компилятор и получил ошибку компиляции, поэтому подправил, потому что я получаю х из json.


Ответы (1 шт):

Автор решения: UserTest013

TypeScript не конвертирует типы. TypeScript лишь проверяет соответствие типов на этапе компиляции. Но вы указали что x имеет тип any и это указывает компилятору что вы не хотите проверять тип х.

Конвертируйте типы явно:

const x:any = 5;
foo(x);

...

 function foo( p: any) {
    p = String(p);
    console.log('foo',p, typeof(p))
}
→ Ссылка