I have a pure ES6+ class. (node18+)
I would like to define an async generator member function, like:
class A { async *mygenerator() {} }
In typescript it is possible, but the transpiled code is not really useful.
So in typescript, this is valid:
class A { public static async *myfunc<T>(): AsyncGenerator<T, void, void> {} }
Maybe this is not possible in pure js classes...
-- UPDATE --
The syntax check fails when using the linter.
Is there any linter option to prevent this to interpret as a valid syntax?
{
"extends": [
"eslint:recommended",
"plugin:node/recommended",
"plugin:import/recommended",
"prettier",
"airbnb-base"
],
"plugins": ["node", "prettier"],
"parserOptions": {
"ecmaVersion": 2022,
"sourceType": "module"
},
"env": {
"node": true,
"es6": true,
"jest": true
},
"rules": {
"block-scoped-var": "error",
"eqeqeq": "error",
"no-var": "error",
"no-console": "error",
"prefer-const": "error",
"eol-last": "error",
"prefer-arrow-callback": "error",
"no-trailing-spaces": "error",
"quotes": ["warn", "single", { "avoidEscape": true }],
"no-restricted-properties": [
"error",
{
"object": "describe",
"property": "only"
},
{
"object": "it",
"property": "only"
}
],
"linebreak-style": 0,
"prettier/prettier": [
"error",
{
"endOfLine": "auto"
}
],
"id-length": ["error", { "min": 2 }],
"comma-dangle": 0,
"max-params": ["error", 3],
"node/no-unsupported-features/es-syntax": ["error", { "ignores": ["modules"] }],
"import/no-unresolved": "off",
"node/no-missing-import": "off",
"import/prefer-default-export": "off",
"no-useless-constructor": "off",
"no-use-before-define": "off",
"import/extensions": "off",
"object-curly-newline": "off",
"no-underscore-dangle": "off",
"import/no-absolute-path": "off",
"node/no-unpublished-import": "off",
"import/no-extraneous-dependencies": "off",
"class-methods-use-this": "off",
"lines-between-class-members": "off",
"camelcase": "off",
"operator-linebreak": "off",
"implicit-arrow-linebreak": "off",
"function-paren-newline": "off",
"no-shadow": "off",
"indent": "off",
"brace-style": "off"
}
}
Javascript async generator example:
Typescript is a strongly typed language, Javascript is a weakly typed language. So you will not be able to specify the types in Javascript like you do in Typescript. But nevertheless you can create async generators in Javascript.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncGenerator
Inside class
EDIT
Of course, async generators can be class members as well