isolatedDeclarationErrorsReturnTypes.ts(13,45): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(16,41): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(19,41): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(109,65): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(112,61): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(115,61): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(119,83): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(120,66): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(122,79): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(123,62): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(125,79): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(126,62): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(138,73): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(141,69): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(144,69): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(151,38): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(152,21): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(153,57): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(154,40): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(156,51): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(157,34): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(158,70): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(159,53): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(162,53): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(163,36): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(164,72): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(165,55): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(167,66): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(168,49): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(169,85): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
isolatedDeclarationErrorsReturnTypes.ts(170,68): error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.


==== isolatedDeclarationErrorsReturnTypes.ts (31 errors) ====
    // Function Variables
    export const fnExpressionConstVariable = function foo() { return 0;}
    export const fnArrowConstVariable = () => "S";
    
    export let fnExpressionLetVariable = function foo() { return 0;}
    export let fnArrowLetVariable = () => "S";
    
    export var fnExpressionVarVariable = function foo() { return 0;}
    export var fnArrowVarVariable = () => "S";
    
    // No Errors
    export const fnExpressionConstVariableOk = function foo(): number { return 0;}
    export const fnArrowConstVariableOk = (cb = function(){ }): string => "S";
                                                ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:13:40: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:13:45: Add a return type to the function expression.
    
    export let fnExpressionLetVariableOk = function foo(): number { return 0;}
    export let fnArrowLetVariableOk = (cb = function(){ }): string => "S";
                                            ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:16:36: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:16:41: Add a return type to the function expression.
    
    export var fnExpressionVarVariableOk = function foo(): number { return 0;}
    export var fnArrowVarVariableOk = (cb = function(){ }): string => "S";
                                            ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:19:36: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:19:41: Add a return type to the function expression.
    
    // Not exported
    const fnExpressionConstVariableInternal = function foo() { return 0;}
    const fnArrowConstVariableInternal = () => "S";
    
    let fnExpressionLetVariableInternal = function foo() { return 0;}
    let fnArrowLetVariableInternal = () => "S";
    
    var fnExpressionVarVariableInternal = function foo() { return 0;}
    var fnArrowVarVariableInternal = () => "S";
    
    // Function Fields
    export class ExportedClass { 
        // Should Error
        fnExpression = function foo() { return 0; }
        fnArrow = () => "S";    
        protected fnExpressionProtected = function foo() { return 0; }
        protected fnArrowProtected = () => "S";
    
        static fnStaticExpression = function foo() { return 0; }
        static fnStaticArrow = () => "S";
        protected static fnStaticExpressionProtected = function foo() { return 0; }    
        protected static fnStaticArrowProtected = () => "S";
    
        // Have annotation, so ok 
        fnExpressionOk = function foo(): number { return 0; }
        fnArrowOK = (): string => "S";
        protected fnExpressionProtectedOk = function foo(): number { return 0; }
        protected fnArrowProtectedOK = (): string => "S";
    
        static fnStaticExpressionOk = function foo(): number { return 0; }
        static fnStaticArrowOk = (): string => "S";
        protected static fnStaticExpressionProtectedOk = function foo(): number { return 0; }    
        protected static fnStaticArrowProtectedOk = (): string => "S";
        
    
        // No Error not in declarations
        private fnExpressionPrivate = function foo() { return 0; }
        private fnArrowPrivate = () => "S";
        #fnArrow = () => "S";
        #fnExpression = function foo() { return 0;}
        private static fnStaticExpressionPrivate = function foo() { return 0; }
        private static fnStaticArrowPrivate = () => "S";
    }
    
    // Should error
    class IndirectlyExportedClass { 
        fnExpression = function foo() { return 0; }
        fnArrow = () => "S";
    
        static fnStaticExpression = function foo() { return 0; }
        static fnStaticArrow = () => "S";
        
        protected static fnStaticExpressionProtected = function foo() { return 0; }    
        protected static fnStaticArrowProtected = () => "S";
    
        private fnExpressionPrivate = function foo() { return 0; }
        private fnArrowPrivate = () => "S";
        #fnArrow = () => "S";
        #fnExpression = function foo() { return 0;}
        private static fnStaticExpressionPrivate = function foo() { return 0; }
        private static fnStaticArrowPrivate = () => "S";
    }
    export const instance: IndirectlyExportedClass = new IndirectlyExportedClass();
    
    // No Errors
    class InternalClass { 
        fnExpression = function foo() { return 0; }
        fnArrow = () => "S";
    
        static fnStaticExpression = function foo() { return 0; }
        static fnStaticArrow = () => "S";
        
        protected static fnStaticExpressionProtected = function foo() { return 0; }    
        protected static fnStaticArrowProtected = () => "S";
    
        private fnExpressionPrivate = function foo() { return 0; }
        private fnArrowPrivate = () => "S";
        #fnArrow = () => "S";
        #fnExpression = function foo() { return 0;}
        private static fnStaticExpressionPrivate = function foo() { return 0; }
        private static fnStaticArrowPrivate = () => "S";
    }
    const internalInstance: InternalClass = new InternalClass();
    
    
    // Function parameters
    
    // In Function Variables - No annotations
    export const fnParamExpressionConstVariable = function foo(cb = function(){ }) { return 0;}
                                                                    ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:109:60: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:109:65: Add a return type to the function expression.
    export const fnParamArrowConstVariable = (cb = () => 1) => "S";
    
    export let fnParamExpressionLetVariable = function foo(cb = function(){ }) { return 0;}
                                                                ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:112:56: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:112:61: Add a return type to the function expression.
    export let fnParamArrowLetVariable = (cb = () => 1) => "S";
    
    export var fnParamExpressionVarVariable = function foo(cb = function(){ }) { return 0;}
                                                                ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:115:56: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:115:61: Add a return type to the function expression.
    export var fnParamArrowVarVariable = (cb = () => 1) => "S";
    
    // In Function Variables - No annotations on parameter
    export const fnParamExpressionConstVariableOwnerHasReturnType = function foo(cb = function(){ }): number { return 0;}
                                                                                      ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:119:78: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:119:83: Add a return type to the function expression.
    export const fnParamArrowConstVariableOwnerHasReturnType = (cb = function(){ }): string => "S";
                                                                     ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:120:61: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:120:66: Add a return type to the function expression.
    
    export let fnParamExpressionLetVariableOwnerHasReturnType = function foo(cb = function(){ }): number { return 0;}
                                                                                  ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:122:74: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:122:79: Add a return type to the function expression.
    export let fnParamArrowLetVariableOwnerHasReturnType = (cb = function(){ }): string => "S";
                                                                 ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:123:57: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:123:62: Add a return type to the function expression.
    
    export var fnParamExpressionVarVariableOwnerHasReturnType = function foo(cb = function(){ }): number { return 0;}
                                                                                  ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:125:74: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:125:79: Add a return type to the function expression.
    export var fnParamArrowVarVariableOwnerHasReturnType = (cb = function(){ }): string => "S";
                                                                 ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:126:57: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:126:62: Add a return type to the function expression.
    
    // No Errors
    export const fnParamExpressionConstVariableOk = function foo(cb = function(): void{ }): number { return 0;}
    export const fnParamArrowConstVariableOk = (cb = function(): void{ }): string => "S";
    
    export let fnParamExpressionLetVariableOk = function foo(cb = function(): void{ }): number { return 0;}
    export let fnParamArrowLetVariableOk = (cb = function(): void{ }): string => "S";
    
    export var fnParamExpressionVarVariableOk = function foo(cb = function(): void{ }): number { return 0;}
    export var fnParamArrowVarVariableOk = (cb = function(): void{ }): string => "S";
    
    export const fnParamExpressionConstVariableInternal = function foo(cb = function(){ }) { return 0;}
                                                                            ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:138:68: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:138:73: Add a return type to the function expression.
    export const fnParamArrowConstVariableInternal = (cb = () => 1) => "S";
    
    export let fnParamExpressionLetVariableInternal = function foo(cb = function(){ }) { return 0;}
                                                                        ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:141:64: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:141:69: Add a return type to the function expression.
    export let fnParamArrowLetVariableInternal = (cb = () => 1) => "S";
    
    export var fnParamExpressionVarVariableInternal = function foo(cb = function(){ }) { return 0;}
                                                                        ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:144:64: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:144:69: Add a return type to the function expression.
    export var fnParamArrowVarVariableInternal = (cb = () => 1) => "S";
    
    
    // In Function Fields
    export class FnParamsExportedClass { 
        // Should Error
        fnExpression = function foo(cb = function(){ }) { return 0; }
                                         ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:151:33: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:151:38: Add a return type to the function expression.
        fnArrow = (cb = function(){ }) => "S";
                        ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:152:16: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:152:21: Add a return type to the function expression.
        protected fnExpressionProtected = function foo(cb = function(){ }) { return 0; }
                                                            ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:153:52: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:153:57: Add a return type to the function expression.
        protected fnArrowProtected = (cb = function(){ }) => "S";
                                           ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:154:35: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:154:40: Add a return type to the function expression.
    
        static fnStaticExpression = function foo(cb = function(){ }) { return 0; }
                                                      ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:156:46: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:156:51: Add a return type to the function expression.
        static fnStaticArrow = (cb = function(){ }) => "S";
                                     ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:157:29: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:157:34: Add a return type to the function expression.
        protected static fnStaticExpressionProtected = function foo(cb = function(){ }) { return 0; }    
                                                                         ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:158:65: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:158:70: Add a return type to the function expression.
        protected static fnStaticArrowProtected = (cb = function(){ }) => "S";
                                                        ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:159:48: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:159:53: Add a return type to the function expression.
    
        // Have annotation on owner
        fnExpressionMethodHasReturn = function foo(cb = function(){ }): number { return 0; }
                                                        ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:162:48: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:162:53: Add a return type to the function expression.
        fnArrowMethodHasReturn = (cb = function(){ }): string => "S";
                                       ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:163:31: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:163:36: Add a return type to the function expression.
        protected fnExpressionProtectedMethodHasReturn = function foo(cb = function(){ }): number { return 0; }
                                                                           ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:164:67: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:164:72: Add a return type to the function expression.
        protected fnArrowProtectedMethodHasReturn = (cb = function(){ }): string => "S";
                                                          ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:165:50: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:165:55: Add a return type to the function expression.
    
        static fnStaticExpressionMethodHasReturn = function foo(cb = function(){ }): number { return 0; }
                                                                     ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:167:61: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:167:66: Add a return type to the function expression.
        static fnStaticArrowMethodHasReturn = (cb = function(){ }): string => "S";
                                                    ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:168:44: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:168:49: Add a return type to the function expression.
        protected static fnStaticExpressionProtectedMethodHasReturn = function foo(cb = function(){ }): number { return 0; }    
                                                                                        ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:169:80: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:169:85: Add a return type to the function expression.
        protected static fnStaticArrowProtectedMethodHasReturn = (cb = function(){ }): string => "S";
                                                                       ~~~~~~~~
!!! error TS9007: Function must have an explicit return type annotation with --isolatedDeclarations.
!!! related TS9028 isolatedDeclarationErrorsReturnTypes.ts:170:63: Add a type annotation to the parameter cb.
!!! related TS9030 isolatedDeclarationErrorsReturnTypes.ts:170:68: Add a return type to the function expression.
    
        // Have annotation only on parameter
        fnExpressionOnlyOnParam = function foo(cb = function(): void { }) { return 0; }
        fnArrowOnlyOnParam = (cb = function(): void { }) => "S";
        protected fnExpressionProtectedOnlyOnParam = function foo(cb = function(): void { }) { return 0; }
        protected fnArrowProtectedOnlyOnParam = (cb = function(): void { }) => "S";
    
        static fnStaticExpressionOnlyOnParam = function foo(cb = function(): void{ }) { return 0; }
        static fnStaticArrowOnlyOnParam = (cb = function(): void{ }) => "S";
        protected static fnStaticExpressionProtectedOnlyOnParam = function foo(cb = function(): void{ }) { return 0; }    
        protected static fnStaticArrowProtectedOnlyOnParam = (cb = function(): void{ }) => "S";
    
        // Have annotation, so ok 
        fnExpressionOk = function foo(cb = function(): void { }): number { return 0; }
        fnArrowOK = (cb = function(): void { }): string => "S";
        protected fnExpressionProtectedOk = function foo(cb = function(): void { }): number { return 0; }
        protected fnArrowProtectedOK = (cb = function(): void { }): string => "S";
    
        static fnStaticExpressionOk = function foo(cb = function(): void{ }): number { return 0; }
        static fnStaticArrowOk = (cb = function(): void{ }): string => "S";
        protected static fnStaticExpressionProtectedOk = function foo(cb = function(): void{ }): number { return 0; }    
        protected static fnStaticArrowProtectedOk = (cb = function(): void{ }): string => "S";
        
    
        // No Error, not in declarations
        private fnExpressionPrivate = function foo(cb = function(){ }) { return 0; }
        private fnArrowPrivate = (cb = function(){ }) => "S";
        #fnArrow = (cb = function(){ }) => "S";
        #fnExpression = function foo(cb = function(){ }) { return 0;}
        private static fnStaticExpressionPrivate = function foo(cb = function(){ }) { return 0; }
        private static fnStaticArrowPrivate = (cb = function(){ }) => "S";
    }
    