| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
| "category": "Error", | ||
| "code": 1353 | ||
| }, | ||
| "'readonly' type modifier is only permitted on array and typle types.": { |
There was a problem hiding this comment.
Typo: typle to tuple.
Sorry, something went wrong.
There was a problem hiding this comment.
Jordi Oliveras Rovira (@j-oliveras) Oops. Thanks!
Sorry, something went wrong.
| } | ||
| else if (node.operator === SyntaxKind.ReadonlyKeyword) { | ||
| if (node.type.kind !== SyntaxKind.ArrayType && node.type.kind !== SyntaxKind.TupleType) { | ||
| return grammarErrorOnFirstToken(node, Diagnostics.readonly_type_modifier_is_only_permitted_on_array_and_typle_types, tokenToString(SyntaxKind.SymbolKeyword)); |
There was a problem hiding this comment.
Add test for this?
Sorry, something went wrong.
| switch (operator) { | ||
| case SyntaxKind.KeyOfKeyword: | ||
| case SyntaxKind.UniqueKeyword: | ||
| case SyntaxKind.ReadonlyKeyword: |
There was a problem hiding this comment.
Think we need test/handling for .d.ts generation and decorator for this new typeNode kind.
Sorry, something went wrong.
|
Does this improved support for readonly arrays mean it's now possible to have readonly array/tuples as the type of a rest argument? function f(...args: ReadonlyArray<string>) {} is currently a type error. |
Sorry, something went wrong.
|
@Kovensky Isn't in the PR currently, but I see no reason why we couldn't support it. I will fix it, it's just a minor change. |
Sorry, something went wrong.
There was a problem hiding this comment.
+1 for .d.ts emit coverage - the only .d.ts currently in this set has semantic errors in its originating file, which makes it shaky at best
Sorry, something went wrong.
|
I think having decorator test is good idea too.. since we normally forget that when we enable new kind of type annotation. |
Sorry, something went wrong.
// @emitDecoratorMetadata: true
// @experimentalDecorators: true
// @declaration: true
declare const someDec: any;
class A {
@someDec
j: readonly string[];
@someDec
k: readonly [string, number];
} |
Sorry, something went wrong.
|
Is this an intended change that a single 'readonly' is no longer parsed as a type? type readonly = string; var q: readonly; (This is not a sample from real code, just a test case.) Seems that it is not a serious issue, but would be nice to know if this was planned, as you still may declare a type named 'readonly' but cannot use it anymore. |
Sorry, something went wrong.
|
Anton Lobov (@zhuravlikjb) No, that was not intended. I will look at getting it fixed. |
Sorry, something went wrong.
|
Using a version of TypeScript that contains this PR creates declaration files which are not compatible with older versions of TypeScript. In case someone else has the same problem: I created a transformer to downlevel readonly array types in declaration files: https://github.com/ajafff/ts-transform-readonly-array |
Sorry, something went wrong.
|
Anders Hejlsberg (@ahejlsberg) This feature leaved some large bugs (Maybe regression). Please fix them: #29442 #29702 |
Sorry, something went wrong.
|
falsandtru (@falsandtru) Those issues are not related to this PR, but I have a fix in #29740. |
Sorry, something went wrong.
|
Indeed, I thought another PR. Anyway, thanks for fixing. |
Sorry, something went wrong.
|
I assume the extension to readonly SomeObject or readonly T is not worth the native compiler support, now that Readonly<T> can work for everything as expected? React.Ref<readonly T> such that it's assignable from Ref<U> for U extends T would be kind of neat though. |
Sorry, something went wrong.
|
Is it still possible to declare a writable property with an immutable array? For example, constructable stylesheets defines document.adoptedStyleSheets as an array that is immutable and needs to be reassigned to be changed: element.shadowRoot.adoptedStyleSheets = [...element.shadowRoot.adoptedStyleSheets, styleSheet] |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
This PR improves our support for read-only arrays and tuples:
Some examples:
Fixes #26864.
Fixes #28540.
Fixes #28968.