Consider the following Typescript example. The first line results in an error 'type undefined[] is not assignable to type [string]'. The last two lines do compile.
let givesAnError: [string] = [];
let isOK: string[] = [];
let isAlsoOK: [string] = ["foo"];
How do you have to interprete the type definition [string]
in Typescript?
String[] and String... are the same thing internally, i. e., an array of Strings. The difference is that when you use a varargs parameter ( String... ) you can call the method like: public void myMethod( String...
There's no difference between the two, it's the same.
string is an alias in the C# language for System. String . Both of them are compiled to System. String in IL (Intermediate Language), so there is no difference.
(String… args) is an array of parameters of type String, whereas String[] is a single parameter. String[] can full fill the same purpose but just (String… args)provides more readability and easiness to use.
The first (givesAnError
) and last (isAlsoOK
) are tuples, and the second (isOK
) is an array.
With arrays all of your elements are of the same type:
let a: string[];
let b: boolean[];
let c: any[];
But with tuples you can have different types (and a fixed length):
let a: [string, boolean, number];
let b: [any, any, string];
So:
a = ["str1", true, 4]; // fine
b = [true, 3, "str"]; // fine
But:
a = [4, true, 3]; // not fine as the first element is not a string
b = [true, 3]; // not fine because b has only two elements instead of 3
It's important to understand the the javascript output will always use arrays, as there's no such thing as tuple in js.
But for the compilation time it is useful.
string[] // n-length array, must only contain strings
[string] // must be 1-length array, first element must be a string
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With