One way to limit function parameters while not retaining the type of the argument is to use a type parameter with a constraint that specifies a union of allowed types.
For example, suppose we have a function that takes two arguments, a
and b
, and we want to limit a
to be a string or number, but we don't want to retain the specific type of a
in the return type:
function myFunc<T extends string | number>(a: T, b: any) {
// do something with a and b
}
myFunc("hello", 42); // OK
myFunc(true, null); // Error: 'true' is not assignable to string | number
In this example, T
is a type parameter with a constraint of string | number
, which limits the possible types for a
. However, the return type of myFunc
does not include T
, so the specific type of a
is not retained.
Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss
Asked: 2022-10-01 11:00:00 +0000
Seen: 7 times
Last updated: Oct 04 '22
How can one ensure that sub-classes have uniform method parameters in TypeScript?
Can a TypeScript definition for icon names be provided in MaterialCommunityIcons for React Native?
How can TypeScript be used to save a file in an Excel add-in?
What is the Angular Type script NG Zorro event for radio buttons?
What is the process for implementing a Many to Many relationship using NestJs Sequlize and Mysql2?
What is the method for defining a Fixed length Array in TypeScript?
What difficulties are encountered in the installation of react-router-dom using typescript?