The keyword extends
can be used for interfaces and classes only.
If you just want to declare a type that has additional properties, you can use intersection type:
type UserEvent = Event & {UserId: string}
UPDATE for TypeScript 2.2, it’s now possible to have an interface that extends object-like type, if the type satisfies some restrictions:
type Event = { name: string; dateCreated: string; type: string; } interface UserEvent extends Event { UserId: string; }
It does not work the other way round – UserEvent
must be declared as interface, not a type
if you want to use extends
syntax.
And it’s still impossible to use extend
with arbitrary types – for example, it does not work if Event
is a type parameter without any constraints.
Related Posts:
- What is TypeScript and why would I use it in place of JavaScript? [closed]
- ES6 Map in Typescript
- Can’t bind to ‘ngModel’ since it isn’t a known property of ‘input’
- How to define type for a function callback (as any function type, not universal any) used in a method parameter
- TypeScript foreach return [duplicate]
- TypeScript React.FC
confusion - How to perform string interpolation in TypeScript?
- Angular: mat-form-field must contain a MatFormFieldControl
- (change) vs (ngModelChange) in angular
- Typescript : Property does not exist on type ‘object’
- Angular ForEach in Angular4/Typescript?
- Angular4 – No value accessor for form control
- No overload matches this call. Type ‘string’ is not assignable to type ‘Signals’
- RegExp in TypeScript
- How do you format a Date/Time in TypeScript?
- npm WARN … requires a peer of … but none is installed. You must install peer dependencies yourself
- What is ViewChild in Angular2?
- How do I check whether an array contains a string in TypeScript?
- Uncaught ReferenceError: define is not defined typescript
- String.Format not work in TypeScript
- declaration or statement expected javascript/typescript
- TypeError: Class extends value undefined is not a function or null
- Can’t perform a React state update on an unmounted component
- Angular 4 setTimeout() with variable delay and wait
- How do I download a file with Angular2 or greater
- typescript – cloning object
- Angular 2 Sort table columns
- How do I install Angular 2 using NPM?
- How to add a class to a given element?
- How to make a word underline in Markdown
- Creating multiline strings in JavaScript
- Babel 6 regeneratorRuntime is not defined
- What is JSONP, and why was it created?
- React – uncaught TypeError: Cannot read property ‘setState’ of undefined
- await is only valid in async function
- Remove duplicate values from JS array [duplicate]
- How to read an external local JSON file in JavaScript?
- SyntaxError: Unexpected token o in JSON at position 1
- Remove duplicate values from JS array
- Add swipe left/right to web page, but use default swipe up/down
- How to Create simple drag and Drop in angularjs
- stop all instances of node.js server
- Working with $scope.$emit and $scope.$on
- Using Node.js require vs. ES6 import/export
- How can jQuery deferred be used?
- Uncaught TypeError : cannot read property ‘replace’ of undefined In Grid
- How do I change an HTML selected option using JavaScript?
- How to refresh a Page using react-route Link
- character counter – backspace doesn’t reflect on characters remaining
- How does the double exclamation (!!) work in javascript?
- Add days to JavaScript Date
- Pass a JavaScript function as parameter
- Cannot read property ‘getContext’ of null, using canvas
- How to add multiple classes to a ReactJS Component?
- Make Axios send cookies in its requests automatically
- JSON.parse() not working
- Call python function from JS
- How to add onload event to a div element
- Access Control Origin Header error using Axios
- Structs in Javascript
- Refused to execute script, strict MIME type checking is enabled?
- How to get the ASCII value in JavaScript for the characters [duplicate]
- HTML img onclick Javascript
- Clear the cache in JavaScript
- error Unable to get property ‘display’ of undefined or null reference
- Is there a php echo/print equivalent in javascript
- setInterval with loop time
- navigator.geolocation.getCurrentPosition sometimes works sometimes doesn’t
- Expected ‘this’ to be used by class method
- Strip HTML from Text JavaScript
- How to disable auto-start of “Node.js: Server-side JavaScript” when using Adobe Dreamweaver?
- ngular is automatically adding ‘ng-invalid’ class on ‘required’ fields
- How to set “style=display:none;” using jQuery’s attr method?
- Await is a reserved word error inside async function
- WordPress Bootstrap Handburger Menu Wont Open
- Show only images and videos in a wp.media window
- Instantiate TinyMCE via JS ( rather than PHP/wp_editor )
- Animations are not being triggered on Scroll
- Prevent escaping javascript in visual editor
- JavaScript in WordPress Customizer
- @wordpress/components Button variants not styled
- Only displaying zip files with wp media
- How to use div -ids in url to jump to specific post…Is trailing slash the culprit?
- Button insert link on front wp_editor not working
- How Can I Add OnClick Event To A Specific WordPress Menu Link
- Adding a Javascript slideshow to the home page
- Screen Resolution Detect
- How to add customizer control via javascript ( wp.customizer.control.add )
- Is it possible to pass js variable to template file
- Automatically Add Defer or ASYNC to all JS files (no matter where they are located)
- How to generate the COOKIEHASH from JavaScript
- Gutenberg Blocks: how to determine an index of the current inner block?
- find out reason of “Updating failed” in Post-editor
- Getting a variable inside foreach from PHP to JS after localization
- Problem after upgrade to 3.6.1
- When adding google tag script in website, functionality not working
- How should I identify the inline javascript that is the dependent of a wp_enqueue_script?
- How to verify that a field has a value before adding a term to a taxonomy
- How to load JavaScript modules with script_loader_tag hook?
- How to securely set dynamic HTML content with JavaScript?